Сохранить значение объекта в таблице типов - PullRequest
1 голос
/ 24 января 2012

После id кода для хранения значения объекта в массиве таблицы типов.

Создание объекта:

Create or replace type t_loc as Object
    (
      name varchar2(255 byte),
      idt char(2)
    );

Блок PLSQL

set serveroutput on;
  declare 
     TYPE test1 IS TABLE OF VARCHAR2(100) INDEX BY t_loc;
     test2 test1;
  begin
    test2('abad')  := t_loc('ahmedabad','CT');
    test2('bang')  := t_loc('bangalure','S');
    test2('surat')  :=t_loc('Surat','C');

    dbms_output.put_line(test2('surat'));

  end;

Я не могускомпилировать верхний код.Разве это не возможно в оракуле?или что-то не так?

Ответы [ 2 ]

2 голосов
/ 24 января 2012

Хотите ли вы таблицу строк, проиндексированных вашим пользовательским типом? Или вы хотите таблицу вашего пользовательского типа, проиндексированную по строкам? В любом случае, объявление test1 не соответствует тому, как вы его используете ниже.

Попробуйте следующий код:

declare 
    TYPE test1 IS TABLE OF t_loc INDEX BY VARCHAR2(100);
    test2 test1;
begin
    test2('abad')  := t_loc('ahmedabad','CT');
    test2('bang')  := t_loc('bangalure','S');
    test2('surat') := t_loc('Surat','C');

    dbms_output.put_line(test2('surat').name);
end;
/
1 голос
/ 24 января 2012

У меня есть решение, следующий код.

set serveroutput on;
      declare 
         TYPE test1 IS TABLE OF t_loc INDEX BY varchar2(100);
         test2 test1;
      begin
        test2('abad')  := t_loc('ahmedabad','CT');
        test2('bang')  := t_loc('bangalure','S');
        test2('surat')  :=t_loc('Surat','C');

        dbms_output.put_line(test2('surat').name);

      end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...