即時実行コマンドを使用してテーブルを作成することはお勧めできませんが、実行する前にユーザーに 2 つの情報を要求するテーブルを作成する必要があります。現在私は持っています:
DECLARE
TEST_NAME VARCHAR2(200);
TEST_VERSION VARCHAR2(200);
BEGIN
TEST_NAME := '&1';
TEST_VERSION := '&2';
EXECUTE IMMEDIATE 'create table TEST_TABLE
(
PROJ_NAME VARCHAR(255) DEFAULT TEST_NAME,
PROJ_VER VARCHAR(255) DEFAULT TEST_VERSION,
COL_1 NUMBER(5)
)';
End;
これはエラーをスローします
Error report:
ORA-00984: column not allowed here
ORA-06512: at line 8
00984. 00000 - "column not allowed here"
*Cause:
*Action:
この問題を解決するにはどうすればよいですか? また、2 番目の質問として、別のスクリプトでこのテーブルを作成することに成功した場合、どのように if ステートメントを使用して変数を proj_name 列のデフォルト値 (test_name) と比較しますか?
編集: tbone と Parado のおかげで、最初の問題を解決しましたが、if ステートメントを使用して次のようなことを行う方法を知っている人がいれば:
If test_var = proj_name.default_value ...
行が挿入されていない場合でも、デフォルトの proj_name 値と比較できる必要があります。ありがとう、