PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
2768 98/08/17 10:43:23 ありがとうございました By YOSHI
2767 98/08/17 10:01:19 RE:PB4.0.07: プログラムで可変のテーブルを作れますか? By Mickey
2742 98/08/12 16:51:06 RE:RE:PB4.0.07: プログラムで可変のテーブルを作れますか? By YOSHI
2737 98/08/12 16:06:20 RE:PB4.0.07: プログラムで可変のテーブルを作れますか? By M.M
2728 98/08/12 12:25:19 PB4.0.07: プログラムで可変のテーブルを作れますか? By YOSHI

カテゴリ:旧電子会議室
日付:1998年08月17日 10:01 発信者:Mickey
題名:RE:PB4.0.07: プログラムで可変のテーブルを作れますか?

>プログラムでテーブルを作れますか?

>また、作れるとしたら、データ型や長さを任意で作成できますか?



こんにちは。
私は、ORACLEを使用していますが、参考になれば幸いです。
テーブルの動的変更のことだと思いますが、私はストアドプロシジャで変更しています。
次に実際の例を記述しますので参考にして下さい。(SQLServerにはあるのかな?)

次の例は端末ごとに集計テーブルを作成していますが、実際には他の端末と競合しないように
端末番号を付け足しています。


CREATE OR REPLACE PROCEDURE P_CREATE_TABLE(CLIENT_NO IN VARCHAR2) IS
hnd number;
rows_proc number;

CREATE_DOUBLE_ERROR EXCEPTION;
PRAGMA EXCEPTION_INIT(CREATE_DOUBLE_ERROR,-00955);

BEGIN
hnd := dbms_sql.open_cursor;

-- テーブル作成
dbms_sql.parse( hnd, \'CREATE TABLE mickey.\"集計テーブル\' || CLIENT_NO || \'\"\' ||
       \'(\"会社内部番号\" NUMBER(10,0) NOT NULL,
       \"請求先内部番号\" NUMBER(10,0) NOT NULL,
       \"期間開始\" DATE NOT NULL,
       \"期間終了\" DATE NOT NULL,
       \"前回残高\" NUMBER(12,0) NOT NULL,
       \"今回入金\" NUMBER(12,0) NOT NULL,
       \"今回売上\" NUMBER(12,0) NOT NULL,
       \"登録日付\" DATE NOT NULL,
       \"更新日付\" DATE NOT NULL)\', dbms_sql.v7);

-- ここで実行
rows_proc := dbms_sql.execute(hnd);


-- プライマリーキー作成
dbms_sql.parse( hnd, \'ALTER TABLE mickey.\"集計テーブル\'  || CLIENT_NO || \'\"\' ||
\' ADD ( CONSTRAINT \' || \'集計主キー\' || CLIENT_NO ||  \' PRIMARY KEY ( \"会社内部番号\",\"請求先内
部番号\" ))\', dbms_sql.v7);

-- ここで実行
rows_proc := dbms_sql.execute(hnd);

EXCEPTION
WHEN CREATE_DOUBLE_ERROR THEN
RETURN;
END;
/

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS Microsoft SQL Server Client 6.5
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Microsoft SQL Server 6.5
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.