0
我是oracle新手。我正在尝试使用HPDMA工具运行oracle脚本,后者又调用创建表模式的表创建脚本。我得到的脚本之一以下错误:ORA-00900:无效的SQL语句Oracle错误
Table MODEL
declare
*
ERROR at line 1:
ORA-00900: invalid SQL statement
ORA-06512: at line 46
下面是创建表的脚本: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;
/
线具有NOCACHE声明。我在其他数据库上运行脚本时没有发生此错误。
任何帮助,将不胜感激。谢谢。
感谢您的回答。但是,当我部署到不同的数据库时,我没有遇到此错误。什么可能是这个特定实例失败的原因? –
你是如何确定给出错误的行?你能否分享一下,以便稍后对我有所帮助。谢谢! –
提示命令将在任何实例上失败。你确定这条线以前存在吗?或者有可能错误没有被发现;根据运行方式的不同,可能会有一个.login或.glogin设置脚本,每当sqlerror设置不同时,就可能会影响整个脚本的成功/失败。值得检查旧的日志。在这种情况下,该表已创建,但推测主键未添加? –