請問我的Stored Procedure哪裡出了問題 |
尚未結案
|
narcysion
一般會員 ![]() ![]() 發表:54 回覆:18 積分:14 註冊:2003-03-14 發送簡訊給我 |
下面程式碼我在MS_SQL的Stored Procedure可以編譯也沒問題,
但我移到oracle的stored Procedure卻出現"所建立的程序含有編譯錯誤", CREATE PROCEDURE SP_SYS01GetNewID
AS
declare @NFC Integer
declare @LoginCNT integer ,@UID varchar2(4) BEGIN
if (Select Max(FlowCode) from SYS01) IS NULL
select @NFC = 1
else
select @NFC = Max(FlowCode) 1 from SYS01
END; 請問要如何改,oracle的Procedure才能接受。
在請教一下,我都是用文字編輯器來寫oracle的PL/SQL程式,
有什麼軟體,可以檢查我的PL/SQL語法有無錯誤。
|
pgdennis
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:41 回覆:526 積分:443 註冊:2002-05-23 發送簡訊給我 |
錯了不要打我...MSSQL(T SQL),ORacle(PL/SQL)兩者差異頗大...
如果要編譯PL/SQL可用要錢的oracle developer或
有試用期的PL/SQL developer 建議用後者,很實用,幾乎是dba studio+PL/SQL IDE..去下載來玩玩吧
create or replace procedure SP_SYS01GetNewID is is NFC Integer; LoginCNT integer ; UID varchar2(4); BEGIN if (Select Max(FlowCode) from SYS01) IS NULL then select 1 into NFC from dual ; else select Max(FlowCode) 1 into NFC from SYS01; end if; end SP_SYS01GetNewID;
------
星期一,二...無窮迴圈@@ |
narcysion
一般會員 ![]() ![]() 發表:54 回覆:18 積分:14 註冊:2003-03-14 發送簡訊給我 |
|
Mickey
版主 ![]() ![]() ![]() ![]() ![]() 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
narcysion 你好 : "dual" 是 Oracle 系統內建的 Table.
Oracle 有 "select" 一定要有 "from", 所以當要取得 function 的 return value 時, 可用 dual table, 例如 : select sysdate from dual.. 另外, 你的 Stored Procedure 應該可以不用那樣麻煩 :
create or replace procedure SP_SYS01GetNewID is NFC Integer; LoginCNT integer ; UID varchar2(4); BEGIN Select nvl(Max(FlowCode),0) 1 into NFC from SYS01; end SP_SYS01GetNewID; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |