我是甲骨文新手。我正在尝试使用HPDMA工具运行一个oracle脚本,该工具依次调用创建表模式的表创建脚本。我在其中一个脚本中得到以下错误:
Table MODEL
declare
*
ERROR at line 1:
ORA-00900: invalid SQL statement
ORA-06512: at line 46下面是创建表的脚本:
SET DEFINE OFF;
Prompt Table MODEL;
declare
l_count int;
begin
select count(*)
into l_count
from all_tables
where owner = 'PORTAL'
and table_name = 'MODEL';
if l_count = 0 then
execute immediate
'CREATE TABLE PORTAL.MODEL
(
CONFIG_ID NUMBER,
CONFIG_NAME VARCHAR2(100 BYTE),
CONFIG_VALUE VARCHAR2(200 BYTE),
MODEL_TYPE VARCHAR2(50 BYTE),
CONFIG_TYPE VARCHAR2(100 BYTE),
IS_ACTIVE CHAR(1 BYTE),
CREATED_BY VARCHAR2(100 BYTE),
CREATED_ON DATE,
UPDATED_BY VARCHAR2(80 BYTE),
UPDATED_ON DATE,
DESCRIPTION VARCHAR2(500 BYTE)
)
TABLESPACE PORTAL_DATA
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING';
execute immediate 'Prompt Non-Foreign Key Constraints on Table MODEL';
execute immediate 'ALTER TABLE PORTAL.MODEL ADD (
CONSTRAINT MODEL_CONFIG_ID_PK
PRIMARY KEY
(CONFIG_ID)
ENABLE VALIDATE)';
execute immediate 'GRANT INSERT, SELECT, UPDATE ON PORTAL.MODEL TO user1';
execute immediate 'GRANT INSERT, SELECT, UPDATE ON PORTAL.MODEL TO user2';
execute immediate 'GRANT SELECT ON PORTAL.MODEL TO user3';
end if;
end;
/第46行有NOCACHE语句。当我在另一个数据库上运行脚本时,我没有这个错误。
任何帮助都将不胜感激。谢谢。
发布于 2017-03-10 01:15:51
该错误是针对第46行报告的-它引用的是PL/SQL块中的该行,而不是整个脚本中的该行。PL/SQL块的第46行是:
execute immediate 'Prompt Non-Foreign Key Constraints on Table MODEL';正如错误所说,它不是PROMPT is a SQL*Plus client command.命令。它在execute immediate提供给您的SQL上下文中无效,该上下文在服务器上运行,与客户端无关。(例如,您可以通过计划的作业运行该块,而根本不需要客户端交互)。
您需要删除这一行。
https://stackoverflow.com/questions/42701378
复制相似问题