問題:oracle觸發器無效且未通過重新驗證;結果:觸發器裡面沒有加分號(;)

來源:互聯網
上載者:User

標籤:

oracle無效且未通過重新驗證

 

代碼如下:

SQL code如下:
--建立中國地圖表create table  china_address(       id number not null primary key,       address_name varchar2(30) not null,       parent_address_id number ,       foreign key(parent_address_id) references china_address(id));               --建立中國地圖序列create sequence china_address_sequminvalue 1maxvalue 10000start with 1increment by 1nocyclecache 5; --建立中國地圖主鍵自增長觸發器create trigger china_address_increase_tr beforeinsert on china_address for each rowbegin  select china_address_sequ.nextval into:new.id from dualend china_address_increase_tr; 

修改如下:

   

CREATE  OR  REPLACE  TRIGGER  CHINA_ADDRESS_INCREASE_TR BEFORE INSERT  ON  CHINA_ADDRESS  FOR  EACH ROW BEGIN    SELECT  CHINA_ADDRESS_SEQU.NEXTVAL  INTO :NEW.ID  FROM  DUAL; END  CHINA_ADDRESS_INCREASE_TR; 主要是你從網上COPY的代碼裡面
SELECT CHINA_ADDRESS_SEQU.NEXTVAL INTO:NEW.ID FROM DUAL
後面少了個符號";"
PL/SQL認為語句後面帶有一個;才作為一個語句的結束

此外,不建議使用觸發器做這個事情,不如使用
INSERT INTO china_address VALUES(CHINA_ADDRESS_SEQU.NEXTVAL,‘sd‘,1);
更健壯.

問題:oracle觸發器無效且未通過重新驗證;結果:觸發器裡面沒有加分號(;)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.