2017-10-15 116 views
-1

我試圖通過在過程中使用FORALL嘗試批量插入。ORACLE將用戶定義的對象類型作爲參數傳遞給過程

我曾嘗試下面的步驟來創建程序:

**CREATE TYPE SECID_TABLE as TABLE OF VARCHAR2 INDEX BY NUMBER;** 

CREATE PROCEDURE ASP_STOCK 
(**p_secid IN SECID_TABLE** 
) as 
BEGIN 
.. 
END; 

但上述兩種說法不進行編譯。我對oracle非常陌生,並且使用aqua studio,它在錯誤聲明中看起來並不冗長。

有人能指導我嗎?

+0

」以上兩條語句不編譯。「什麼是錯誤信息?在CREATE TYPE語句之後的新行上是否只需要一個'/'字符?你真的需要使用關聯數組還是可以刪除'INDEX BY NUMBER'子句並將其用作集合? – MT0

回答

0

這裏有兩個問題。

第一個問題是,您無法創建索引類型爲NUMBER的索引表。 SQLFiddle here將索引類型更改爲PLS_INTEGER

但即使你這樣做,你仍然會得到錯誤,因爲像這樣的索引表是PL/SQL的構造。 SQLFiddle here

你將不得不做其他事情。嘗試一個無索引的TABLE類型,這是在模式級別允許的。 SQLFiddle here

祝你好運。 「

相關問題