首页 文章

显示PLSQL中的所有对象值

提问于
浏览
0

我试图显示一个对象中的所有值,但它给了'必须声明'错误 .

我尝试了下面的代码,但仍然给我同样的错误 .

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:必须声明组件'ID'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 - “line%s,列%s:\ n%s“*原因:通常是PL / SQL编译错误 . *行动:

get_data 只是一个返回select语句结果的函数(返回db行)

1 回答

  • 2

    不确定 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;
    /
    

    Result

    Type MYTYPE compiled
    
    1
    10
    GES1
    20
    RR1
    
    
    PL/SQL procedure successfully completed.
    

相关问题