Показать все значения объекта в PLSQL - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь отобразить все значения в объекте, но это выдает ошибку «Должен быть объявлен».

Я попробовал приведенный ниже код, но все равно выдает ту же ошибку.

declare
      outN mytype;
begin
      outN:= get_data();
      dbms_output.put_line(outN.toString);
      -- tried this as well
      dbms_output.put_line(outN.ID);
      dbms_output.put_line(outN.G);
      dbms_output.put_line(outN.GES);
      dbms_output.put_line(outN.CC);
      dbms_output.put_line(outN.RR);

end;

И мой объект:

 create or replace TYPE           "mytype"
    AS OBJECT
    (
        "ID" NUMBER(10),
        "G" NUMBER(10),
        "GES"  VARCHAR(100 BYTE),
        "CC" NUMBER(10),
        "RR" VARCHAR(100 BYTE)
    );

Ошибки:

Отчет об ошибках - ORA-06550: строка 5, столбец 38: PLS-00302: идентификатор компонента должен быть объявлен ORA-06550: строка 5, столбец 7: PL / SQL: оператор игнорируется ORA-06550: строка 6, столбец 38: PLS-00302: компонент G должен быть объявлен ORA-06550: строка6, столбец 7: PL / SQL: оператор игнорируется ORA-06550: строка 7, столбец 38: PLS-00302: должен быть объявлен компонент «GES» ORA-06550: строка 7, столбец 7: PL / SQL: оператор игнорируется ORA-06550: строка 8, столбец 38: PLS-00302: должен быть объявлен компонент «CC» ORA-06550: строка 8, столбец 7: PL / SQL: оператор игнорируется ORA-06550: строка 9, столбец 38: PLS-00302: компонент«RR» должен быть объявлен ORA-06550: строка 9, столбец 7: PL / SQL: инструкция игнорируется 06550. 00000 - «строка% s, столбец% s: \ n% s» * Причина: обычно ошибка компиляции PL / SQL.

Еще один:

Отчет об ошибках - ORA-06550: строка 5, столбец 38: PLS-00302: компонент 'TOSTRING' должен быть объявлен ORA-06550:строка 5, столбец 7: PL/ SQL: оператор игнорируется 06550. 00000 - «строка% s, столбец% s: \ n% s» * Причина: обычно ошибка компиляции PL / SQL.* Действие:

get_data - это просто функция, которая возвращает результат оператора select (возвращает строки в БД)

1 Ответ

0 голосов
/ 14 ноября 2018

Не уверен, что get_data() и toString есть в вашем коде.Но это должно объяснить, как могут отображаться значения объекта.

create or replace TYPE  mytype -- removed double quotes
    AS OBJECT
    (
        "ID"   NUMBER(10),
        "G"    NUMBER(10),
        "GES"  VARCHAR2(100 BYTE), --Use VARCHAR2 instead of VARCHAR
        "CC"   NUMBER(10),
        "RR"   VARCHAR2(100 BYTE)
    );
    /
SET SERVEROUTPUT ON    
DECLARE
     outn   mytype := mytype(1,10,'GES1',20,'RR1'); --declaration and assignment
BEGIN
     dbms_output.put_line(outn.id);
     dbms_output.put_line(outn.g);
     dbms_output.put_line(outn.ges);
     dbms_output.put_line(outn.cc);
     dbms_output.put_line(outn.rr);
END;
/

Результат

Type MYTYPE compiled

1
10
GES1
20
RR1


PL/SQL procedure successfully completed.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...