首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-00900:无效的SQL语句Oracle错误

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

Stack Overflow用户
提问于 2017-03-10 01:07:10
回答 1查看 1.6K关注 0票数 0

我是甲骨文新手。我正在尝试使用HPDMA工具运行一个oracle脚本,该工具依次调用创建表模式的表创建脚本。我在其中一个脚本中得到以下错误:

代码语言:javascript
复制
Table MODEL
declare
*
ERROR at line 1:
ORA-00900: invalid SQL statement
ORA-06512: at line 46

下面是创建表的脚本:

代码语言:javascript
复制
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语句。当我在另一个数据库上运行脚本时,我没有这个错误。

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

EN

回答 1

Stack Overflow用户

发布于 2017-03-10 01:15:51

该错误是针对第46行报告的-它引用的是PL/SQL块中的该行,而不是整个脚本中的该行。PL/SQL块的第46行是:

代码语言:javascript
复制
execute immediate 'Prompt Non-Foreign Key Constraints on Table MODEL';

正如错误所说,它不是PROMPT is a SQL*Plus client command.命令。它在execute immediate提供给您的SQL上下文中无效,该上下文在服务器上运行,与客户端无关。(例如,您可以通过计划的作业运行该块,而根本不需要客户端交互)。

您需要删除这一行。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42701378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档