Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 магия имен и %ROWTYPE  [new]
tyshenko
Member

Откуда: Санкт-Петербург
Сообщений: 90
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for 64-bit Windows: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

create table ELEMENT_LINK_TYPE_EXT
(
  element_link_type_ext_id INTEGER not null,
  element_link_type_id     INTEGER not null,
  parameter_mapping_id     INTEGER not null,
  parent_id                INTEGER,
  child_id                 INTEGER not null,
  context_code             VARCHAR2(128),
  group_id                 INTEGER,
  parent_value             VARCHAR2(2000),
  child_value              VARCHAR2(2000),
  date_from                TIMESTAMP(6) not null,
  date_to                  TIMESTAMP(6) not null
);

alter table ELEMENT_LINK_TYPE_EXT
  add constraint PK_ELEMENT_LINK_TYPE_EXT primary key (ELEMENT_LINK_TYPE_EXT_ID, DATE_TO)
  using index;
alter table ELEMENT_LINK_TYPE_EXT
  add constraint UK_ELEMENT_LINK_TYPE_EXT unique (ELEMENT_LINK_TYPE_ID, PARAMETER_MAPPING_ID, PARENT_ID, CHILD_ID, CONTEXT_CODE, GROUP_ID, DATE_TO)
  using index;

-- работает
DECLARE
  v_rec  ELEMENT_LINK_TYPE_EXT%ROWTYPE;
  SUBTYPE t_rec IS ELEMENT_LINK_TYPE_EXT%ROWTYPE;
BEGIN
  SELECT *
    INTO v_rec
    FROM element_link_type_ext r
   WHERE ROWNUM<2;
END;

-- не компилируется  с ошибкой Compilation errors for PACKAGE METADATA_PKG
Error: PLS-00310: with %ROWTYPE attribute, 'ELEMENT_LINK_TYPE_EXT' must name a table, cursor or cursor-variable

CREATE OR REPLACE PACKAGE METADATA_PKG IS
  SUBTYPE t_rec IS ELEMENT_LINK_TYPE_EXT%ROWTYPE;
  
  PROCEDURE element_link_type_ext(p_element_link_type_ext_rec  IN OUT ELEMENT_LINK_TYPE_EXT%ROWTYPE);  
  
END METADATA_PKG;  


в чем магия имени таблицы? с другими таблицами данная конструкция работает
29 авг 13, 12:54    [14770502]     Ответить | Цитировать Сообщить модератору
 Re: магия имен и %ROWTYPE  [new]
Elic
Member

Откуда:
Сообщений: 29990
tyshenko
  PROCEDURE element_link_type_ext(p_element_link_type_ext_rec  IN OUT ELEMENT_LINK_TYPE_EXT%ROWTYPE);  
29 авг 13, 13:01    [14770551]     Ответить | Цитировать Сообщить модератору
 Re: магия имен и %ROWTYPE  [new]
tyshenko
Member

Откуда: Санкт-Петербург
Сообщений: 90
Elic, Спасибо.

В документации где-то прописано что они не должны совпадать?
29 авг 13, 14:03    [14770960]     Ответить | Цитировать Сообщить модератору
 Re: магия имен и %ROWTYPE  [new]
Elic
Member

Откуда:
Сообщений: 29990
RTFM Scope and Visibility of Identifiers, PL/SQL Name Resolution (FAQ)
29 авг 13, 14:30    [14771148]     Ответить | Цитировать Сообщить модератору
 Re: магия имен и %ROWTYPE  [new]
Пылинка
Member

Откуда: СПб
Сообщений: 389
tyshenko
Elic, Спасибо.

В документации где-то прописано что они не должны совпадать?

Саша, привет. Смелый ты человек, оказывается.
29 авг 13, 17:00    [14772170]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить