2010-01-29 97 views
1

我有以下的(我不能改變它,它爲我提供使用):如何調用將自定義類型作爲參數的PL/SQL過程?

TYPE Person_Rec IS RECORD(
ID NUMBER(10), 
Name VARCHAR2(30), 
Age Number(10)); 

PROCEDURE Modify_Person(rec IN Person_rec, option IN NUMBER) 
IS 
BEGIN 
... 
END; 

我怎麼會叫Modify_Person外,使用一些SQL語句 - 從SQL控制檯或C++等?如何將參數包裝到Person_Rec中?

回答

3

我沒有看到從C++或從SQL控制檯執行任何簡單的方法。我建議你創建一個封裝包,並添加一個如下所示的過程:

PROCEDURE MyPackage.Modify_Person(id IN NUMBER, 
             name IN VARCHAR2, 
             age IN NUMBER, 
             option IN NUMBER) 

並從包裝器中調用原始過程。

+0

我一直希望能做些像'call modify_person(Person_Rec(123,'john',30),99999)' – 2010-01-29 15:07:54

+0

@John:iirc,如果定義了Type(和Type Body)與一個構造函數。 – Powerlord 2010-01-29 15:17:52

相關問題