Если я создаю простой тип, как это:Можно ли вызвать вызов типа объекта 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;
Но это не работает. Это потому, что это невозможно вообще или потому, что я использую неправильный синтаксис? Я пробовал несколько (неудачных) синтаксисов уже ...
BTW, я использую Oracle 12C.
Вы также пишете свой код Java с помощью блокировки колпачков? –
@ Виллиам Робертсон №. –