0

我正在尝试在 apex5 中创建一个表,并参考具有来自另一个表的外键并且填充了该外键列。但是创建返回错误 ORA-00922:缺少或无效选项,已经检查并且没有注意到任何错误命名可能出了什么问题?以下代码:

CREATE TABLE  "IMAGEM_ICONE_SISTEMA" 
(   "COD" NUMBER NOT NULL ENABLE, 
"COD_SISTEMA" NUMBER(6,0) NOT NULL ENABLE, 
"NOME" VARCHAR2(55), 
"ARQUIVO_IMAGEM" BLOB, 
"MIMETYPE" VARCHAR2(255), 
"FILENAME" VARCHAR2(400), 
"IMG_LAST_UPDATE" TIMESTAMP (6) WITH LOCAL TIME ZONE, 
"UPDATED_BY" VARCHAR2(55), 
"TEXTO_DESCRICAO" VARCHAR2(55), 
"LINK" VARCHAR2(2000), 
"NUM_ORDEM" NUMBER(6,0), 
CONSTRAINT "IMAGEM_ICONE_SISTEM_PK" PRIMARY KEY ("COD") USING INDEX ENABLE)
/
ALTER TABLE  "IMAGEM_ICONE_SISTEMA" ADD CONSTRAINT "IMAGEM_ICONE_SISTEMA_FK" FOREIGN KEY ("COD_SISTEMA")
REFERENCES  "APEX_SISTEMA" ("COD") ON DELETE CASCADE ENABLE
/


CREATE INDEX  "IMAGEM_ICONE_SISTEMA_I2" ON  "IMAGEM_ICONE_SISTEMA" ("COD_SISTEMA")
/

CREATE OR REPLACE EDITIONABLE TRIGGER  "BI_IMAGEM_ICONE_SISTEMA" before insert or update on IMAGEM_ICONE_SISTEMA               
for each row  
begin   
    if :new.COD is null then
        select to_number(sys_guid(),'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') into :new.cod from dual;
    end if; 
    if inserting then
        :new.img_last_update := localtimestamp;
        :new.updated_by := nvl(wwv_flow.g_user,user);
    elsif updating and :new.filename is not null and nvl(dbms_lob.getlength(:new.arquivo_imagem),0) > 15728640 then raise_application_error(-20000, 'O tamanho do arquivo enviado foi maior do que 15MB . Faça o upload de um arquivo de tamanho menor.');
    end if;
    if (inserting or updating) and :new.filename is not null and nvl(:new.mimetype,'NULL') not like 'image%' then
   raise_application_error(-20000, 'O arquivo enviado não é uma imagem. Faça o upload de um arquivo de imagem.');
    end if;
    if inserting or updating then
        :new.img_last_update := localtimestamp;
        :new.updated_by := nvl(wwv_flow.g_user,user);
    end if;
end; 

/
ALTER TRIGGER  "BI_IMAGEM_ICONE_SISTEMA" ENABLE
/
4

0 回答 0