|
今天,在執(zhí)行創(chuàng)建多個(gè)function時(shí),發(fā)現(xiàn)Oracle執(zhí)行完多條create or replace 語(yǔ)句后,實(shí)際上只創(chuàng)建一個(gè)function。
進(jìn)去看了一下該function,出現(xiàn)錯(cuò)誤:出現(xiàn)符號(hào)create,原因是執(zhí)行多條create語(yǔ)句,但批量創(chuàng)建function,只創(chuàng)建一個(gè)。
開(kāi)始懷疑sql語(yǔ)句寫(xiě)錯(cuò),再三檢查后,sql語(yǔ)句并沒(méi)錯(cuò)。那只有一個(gè)可能,Oracle沒(méi)有自動(dòng)判別批量執(zhí)行。
之前一直以為遇到;Oracle就會(huì)解析并執(zhí)行,如insert,select,update等;但對(duì)于方法體(function、procedure、trigger等),這種是不生效的。
解決辦法,可以在create or replace 上一行添加一個(gè)/ ,這樣就可以批量創(chuàng)建了。
如:
CREATE OR REPLACE FUNCTION xxx(in_id IN VARCHAR2)
RETURN VARCHAR2
IS
······
/
CREATE OR REPLACE procedure zzz is
這樣就可以批量創(chuàng)建了。注意,這里的/不能寫(xiě)在CREATE OR REPLACE前面;而且不能有/* */或--等注釋。
|
|
|