我想使功能來計算我所有的ID。 但我的功能不起作用。不知道爲什麼 ? 我正在使用Oracle SQL Developer。PL/SQL ORACLE功能
CREATE FUNCTION policz(wartosc as NUMBER)
RETURN INT
IS
ile INT
BEGIN
SELECT COUNT(Id) INTO ile FROM t_dane
RETURN ILE;
end;
我想使功能來計算我所有的ID。 但我的功能不起作用。不知道爲什麼 ? 我正在使用Oracle SQL Developer。PL/SQL ORACLE功能
CREATE FUNCTION policz(wartosc as NUMBER)
RETURN INT
IS
ile INT
BEGIN
SELECT COUNT(Id) INTO ile FROM t_dane
RETURN ILE;
end;
你有一些問題,在您的代碼:
CREATE OR REPLACE FUNCTION policz(wartosc NUMBER)
RETURN INT IS
ile INT;
BEGIN
SELECT COUNT(Id) INTO ile FROM t_dane;
RETURN ILE;
END;
此外,wartosc
參數是無用的:你永遠不使用它。
創建或替換FUNCTION policz RETURN NUMBER IS ile NUMBER; BEGIN SELECT COUNT(*)INTO ile from PACJENT; RETURN ILE; 結束; 它的工作原理。 – aaaa
你說你在使用Oracle SQL Developer。
但你真的嗎?
的PLSQL編輯器會顯示您引用明確您的問題,以及如何解決這些問題。
你原來的代碼在第一行有問題。你會在參數聲明中注意到NUMBER的變形 - 這是因爲我們不認可'AS'是你的plsql塊中的有效關鍵字。
刪除AS。
編譯。
查看錯誤。
修復錯誤。
編譯。
重複。
假設你有一個名爲T_DANE的表,名爲ID的列,你應該很好。
create or replace FUNCTION policz(wartosc NUMBER)
RETURN INT
IS
ile INT;
BEGIN
SELECT COUNT(Id) INTO ile FROM t_dane;
RETURN ILE;
end;
一旦它編譯沒有錯誤,點擊'綠色播放按鈕'來生成腳本來執行你存儲的過程。輸入「wartosc」的值並點擊「確定」。
在屏幕的底部,您會看到一個「輸出變量」面板。點擊它。你會看到爲ile返回的值。
然後,您將真正使用Oracle SQL Developer。
你的意思是「不起作用」是什麼意思?你有錯誤,意外的結果,...? – Aleksej
ORA-06575:程序包或函數POLICZ處於無效狀態 06575. 00000 - 「程序包或函數%s處於無效狀態」 *原因:SQL語句引用無效的 中的PL/SQL函數州。 Oracle試圖編譯該函數,但 檢測到錯誤。 *操作:請檢查SQL語句和PL/SQL函數,以獲取 錯誤或者被錯誤地分配或丟失的 引用對象的權限。 錯誤在行:1列:8 – aaaa
您在'ile INT'結尾缺少一個分號,另一個在'SELECT COUNT(Id)INTO ile FROM t_dane'末尾。添加這兩個字符,你應該很好。祝你好運。 –