ORA-00900:无效的SQL语句Oracle错误



我是Oracle的新手。我正在尝试使用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语句。当我在其他数据库上运行脚本时,我没有这个错误。

任何帮助将不胜感激。谢谢。

针对第46行报道了错误 - 它指的是PL/SQL块中的该行,而不是在整个脚本中。PL/SQL块的第46行是:

execute immediate 'Prompt Non-Foreign Key Constraints on Table MODEL';

PROMPT是一个sql*加上客户端命令。正如错误所说,这不是SQL命令。在SQL上下文中,execute immediate为您提供了在服务器上运行的,并且与客户端无关。(例如,您可以通过计划的作业运行该块,而完全没有客户端交互)。

您需要删除该行。

最新更新