我正在嘗試編寫PL SQL函數,但是我在格式化和一般語法方面遇到了一些問題。PL SQL函數問題
這是我的當前代碼:
create or replace function getName(name IN varchar, organisation OUT varchar,
xcoord OUT number, ycoord OUT number, errormsg OUT varchar)
return varchar2
as
begin
Select name, LOCX, LOCY
from BBT_POI
WHERE (UPPER(name) LIKE UPPER('%'|| NAME || '%'));
return NAME;
end;
/
variable input varchar;
Variable errormsg varchar;
Variable organisation varchar;
Variable x NUMBER;
Variable y NUMBER;
execute getName ('yach', organisation, x, y, errormsg);
和這些是錯誤消息時我運行創建或替換功能的命令:
FUNCTION GETNAME compiled
Errors: check compiler log
錯誤(5,3):PLS-00428 :在這個SELECT語句中預計會出現INTO子句
當我運行執行行時,我得到:
Error starting at line : 40 in command -
execute getName ('yach', organisation, x, y, errormsg)
Error report -
ORA-06550: line 1, column 24:
PLS-00201: identifier 'ORGANISATION' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
該過程應該帶一個IN參數(名稱或名稱的一部分),並返回四個OUT參數(組織名稱,X座標,Y座標,錯誤消息(如果沒有錯誤則爲'無'消息被拋出))。
我目前知道代碼不會查找錯誤,但我只是想獲得一個簡單的版本,我可以在其中添加更多的功能。
PL/SQL是否真正與MySQL一起工作?考慮標記Oracle? – jarlh
錯誤很明顯。你需要一個'into'子句,一個變量,並在'return'語句中使用這個變量。 –