точечная нотация в расширенном сравнении данных utplsql - PullRequest
1 голос
/ 22 мая 2019

Я встречал приведенный ниже фрагмент кода на веб-сайте utPLSQL.

procedure test_cur_skip_columns_eq is
  l_expected sys_refcursor;
  l_actual   sys_refcursor;
begin
  open l_expected for select 'text' ignore_me, d.* from user_tables d;
  open l_actual   for select sysdate "ADate",  d.* from user_tables d;
  ut.expect( l_actual ).to_equal( l_expected ).exclude( 'IGNORE_ME,ADate' );
end;

procedure test_cur_skip_columns_cn is
  l_expected sys_refcursor;
  l_actual   sys_refcursor;
begin
  open l_expected for select 'text' ignore_me, d.* from user_tables d where rownum = 1;
  open l_actual   for select sysdate "ADate",  d.* from user_tables d;
  ut.expect( l_actual ).to_contain( l_expected ).exclude( 'IGNORE_ME,ADate' );
end;

У него есть эта строка кода с точечной нотацией, ut.expect( l_actual ).to_contain( l_expected ).exclude( 'IGNORE_ME,ADate' );. Я прочитал несколько документов оракула для использования точечной нотации, и везде написано имя_пакета.объект_имя или имя_стали_таблицы. Но вышеупомянутая строка кода не похожа ни на одну из них. Мне интересно знать, что это за объекты между точками. Любая помощь приветствуется.

1 Ответ

2 голосов
/ 22 мая 2019

Мне интересно узнать, что это за объекты между точками.

Это действительно объекты оракула (известные как пользовательские типы, так называемые абстрактные типы данных ).

ut.expect( l_actual ).to_contain( l_expected ).exclude( 'IGNORE_ME,ADate' );

Что здесь происходит:

  • package ut содержит функцию с именем expect, который возвращает объект типа ut_expectation_compound;
  • ut_expectation_compound - это тип, который определяет две функции-члена: to_contain и exclude.Оба они возвращают ut_expectation_compound, что позволяет связывать вызовы методов следующим образом.

Возможно, вы захотите прочитать Object-Relational Developer Guide , чтобы получить представление отема.Также прочитайте Справочник по языку PLSQL - он должен дать ответ на большинство ваших вопросов о синтаксисе PLSQL.

...