我在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' );
的这一行代码。我阅读了一些Oracle文档,以了解点符号的用法,以及到处都显示package_name.object_name或schema_name.table_name的地方。但是上面提到的代码行看起来并不像其中任何一个。我有兴趣知道每个点之间的那些对象是什么。任何帮助表示赞赏。
答案 0 :(得分:2)
我很想知道每个点之间的那些物体是什么。
这些确实是oracle objects(又名用户定义类型,又名abstract data types)。
ut.expect( l_actual ).to_contain( l_expected ).exclude( 'IGNORE_ME,ADate' );
这里发生了什么
ut
包含一个名为expect
的函数,该函数返回类型为ut_expectation_compound
的对象; ut_expectation_compound
是定义两个成员函数的类型:to_contain
和exclude
。他们两个都返回ut_expectation_compound
,这使得方法调用可以像这样链接。您可能想阅读Object-Relational Developer's Guide以获得对该主题的介绍。还要阅读PLSQL Language Reference-它应该为您有关PLSQL语法的大多数问题提供答案。