oracleを初めて使用しました。私は、HPDMAツールを使用してOracleスクリプトを実行しようとしています.HPDMAツールは、テーブルスキーマを作成するテーブル作成スクリプトを呼び出します。私は、スクリプトのいずれかで、次のエラーを取得しています:ORA-00900:無効なSQL文Oracleエラー
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文を持っている:
Table MODEL
declare
*
ERROR at line 1:
ORA-00900: invalid SQL statement
ORA-06512: at line 46
以下は、テーブル作成スクリプトです。別のデータベースでスクリプトを実行したときに、このエラーは発生しませんでした。
ご協力いただければ幸いです。ありがとうございました。
あなたの答えをありがとう。しかし、私は別のデータベースにデプロイしたときにこのエラーに直面しませんでした。この特定のインスタンスで失敗する理由は何でしょうか? –
そして、エラーを出した行をどうやって決めましたか?後で私のために役立つように共有してください。ありがとう! –
promptコマンドは、どのインスタンスでも失敗します。前にその線があったと確信していますか?または、エラーが気付かれなかった可能性があります。実行方法によっては、.loginや.gloginの設定スクリプトがあります。これは、 'sqlerrorがいつも異なって設定されます。例えば、スクリプトの全体的な成功/失敗に影響するかもしれません。多分古いログをチェックする価値がある。この場合、テーブルが作成されましたが、主キーが追加されていない可能性があります。 –