我知道不建议使用立即执行命令创建表,但我需要创建一个表,在操作之前提示用户输入 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:
我该如何解决这个问题?另外作为第二个问题,如果我要在不同的脚本中成功创建此表,我将如何使用 if 语句将变量与 proj_name 列的默认值 (test_name) 进行比较?
编辑: 感谢 tbone 和 Parado,我解决了我的第一个问题,但如果有人可以帮助知道如何使用 if 语句来做这样的事情:
If test_var = proj_name.default_value ...
即使没有插入任何行,我也需要能够与默认的 proj_name 值进行比较。谢谢,