1
如果我創建一個簡單的類型是這樣的:是否有可能從另一個調用oracle對象類型構造函數?
CREATE OR REPLACE TYPE ITEM_REC AS OBJECT (
FIELD1 NUMBER(1)
, FIELD2 VARCHAR2(15 CHAR)
, FIELD3 NUMBER
, FIELD4 DATE
, CONSTRUCTOR FUNCTION ITEM_REC(
FIELD1 NUMBER
, FIELD2 VARCHAR2
) RETURN SELF AS RESULT
, CONSTRUCTOR FUNCTION ITEM_REC(
FIELD1 NUMBER
, FIELD2 VARCHAR2
, FIELD3 NUMBER
) RETURN SELF AS RESULT
);
/
然後我用構造函數如下,所有完美的作品:
CREATE OR REPLACE TYPE BODY ITEM_REC AS
CONSTRUCTOR FUNCTION ITEM_REC(
FIELD1 NUMBER
, FIELD2 VARCHAR2
) RETURN SELF AS RESULT IS
BEGIN
SELF.FIELD1 := FIELD1;
SELF.FIELD2 := FIELD2;
RETURN;
END;
CONSTRUCTOR FUNCTION ITEM_REC(
FIELD1 NUMBER
, FIELD2 VARCHAR2
, FIELD3 NUMBER
) RETURN SELF AS RESULT IS
BEGIN
SELF.FIELD1 := FIELD1;
SELF.FIELD2 := FIELD2;
SELF.FIELD3 := FIELD3;
RETURN;
END;
END;
/
然而,在第二構造,我想引用第一個構造函數,和我們在java中做的一樣;它應該像
CONSTRUCTOR FUNCTION ITEM_REC(
FIELD1 NUMBER
, FIELD2 VARCHAR2
, FIELD3 NUMBER
) RETURN SELF AS RESULT IS
BEGIN
SELF(FIELD1, FIELD2);
SELF.FIELD3 := FIELD3;
RETURN;
END;
但這不起作用。這是因爲它根本不可能或因爲我使用錯誤的語法?我已經嘗試了幾種(不成功)的語法...
順便說一句,我正在使用Oracle 12C。
您是否還使用大寫鎖定編寫Java代碼? –
@William Robertson號 –