oracle呼叫function返回列表時報超出下標錯誤

2022-06-12 10:05:15 字數 1074 閱讀 1938

1樓:匿名使用者

oracle中的function有兩種,一種是系統內建的函式(直接拿來用就行),一種是自定義的(自己寫的完成特定功能的)。function可以在dml語句中執行。如select upper('aabbccdd') '大寫' from dual 其中upper就是系統自帶的函式,是把引數中的字串變成大寫字元。

自定義函式的語句格式是:

create or replace function 函式名 return 返回值型別 is [宣告部分]

begin 主體語句; return 結果; [exception 異常處理部分;] end;

呼叫:select 函式名 from dual;

或者像執行procedure一樣呼叫也可以 begin 函式名; end;

oracle的函式返回一個表怎麼寫

2樓:

你那個很長的sql為啥不弄成一個檢視?

oracle 自定義函式,呼叫時報「程式包或函式無效」

3樓:

你的這個函式編譯大概不能通過吧: lxi_split函式已經將返回值定義為ta_lxi表物件,ta_lxi表物件中的元素為ty_lxi型別的,但是在做pipe row給返回表增加元素時使用的又是字串,這明顯與定義不符合,編譯會有錯誤的。

該函式沒有編譯通過,當然在呼叫時會提示「程式包或函式不存在」,因為該函式還沒有建立。

應該定義一個ty_lxi變數,例如:

v_data ty_lxi := ty_lxi(''); -- 這裡括號裡面的值要隨ty_lxi型別而定

然後,在迴圈中將字串賦給該變數的n2成員: v_data.n2 := v_str

接下來是把該變數加入返回表: pipe row(v_data);

4樓:匿名使用者

可能是函授編譯沒有成功吧

5樓:匿名使用者

重新編譯一下,然後show err 看看

oracle是什麼意思oracle裡接在一個欄位後面是什麼意思?

oracle中的 是一種特殊的用法,表示外連線,並且總是放在非主表的一方。例如左外連線 select a.a,b.a from a left join b on a.b b.b 等價於select a.a,b.a from a,b where a.b b.b 再舉個例子,這次是右外連線 select...

Oracle資料庫檢查點問題,oracle報檢查點無法正常完成是怎麼回事

controlfile 的checkpoint datafile 的checkpoint 還有日誌檔案中的checkpoint 我只是知道有這幾個檔案中含有檢查點,但不知道你所說的型別指的是什麼?看看對你有沒有用 什麼問題。你說阿。呵呵。這樣怎麼回答.問題都沒的 oracle報檢查點無法正常完成是怎...

oracle11g和oracle10g的區別

相對oracle10g而言,oracle 11g具有了與眾不同的特性。1 在oracle 11g中資料安全需求越來越高,擴充對lob和表空間的透明資料加密 transparent data encryption,即tde 特性來提高資料的安全性。2 oracle 11g新的securefile特性主...