我们经常可以在UTL_TCP使用示例中看到运算符"=>"是什么?
如http://www.oracle-base.com/articles/misc/ftp-from-plsql.php
l_conn := ftp.login('ftp.company.com', '21', 'ftpuser', 'ftppassword'); ftp.ascii(p_conn => l_conn); ftp.get(p_conn => l_conn, p_from_file => '/u01/app/oracle/test.txt', p_to_dir => 'MY_DOCS', p_to_file => 'test_get.txt'); ftp.logout(l_conn);
我不明白什么是"p_conn => l_conn"的紫癜,因为我们从不在任何地方使用p_conn.即使关闭连接也是使用ftp.logout(l_conn)完成的,而不是使用p_conn.在此运算符"=>"之前使用的所有变量甚至不在任何地方定义.
也许它是UTL_TCP软件包特有的操作符,因为我从未在其他任何地方看到过它,并且无法在任何PL/SQL文档,Oracle或其他文档中找到它.
这是一种将参数传递给名为not notation的PL/SQL子例程的方法.
有关更多信息,请参阅Oracle官方文档:http:
//docs.oracle.com/cd/B12037_01/appdev.101/b10807/08_subs.htm#sthref1013
当您不知道程序预期的参数数量或预期的顺序时,它主要用于它.因此,您只需将要传递的每个参数命名为相应的值即可.
摘自文档:
位置符号.您可以按照与在过程中声明的顺序相同的顺序指定相同的参数.
这种表示法是紧凑的,但如果您以错误的顺序指定参数(尤其是文字),则很难检测到该错误.如果过程的参数列表发生更改,则必须更改代码.
命名符号.您可以指定每个参数的名称及其值.箭头(=>)用作关联运算符.参数的顺序并不重要.
这种表示法更加冗长,但使您的代码更易于阅读和维护.如果过程的参数列表发生更改,有时可以避免更改代码,例如,如果重新排序参数或添加了新的可选参数.命名符号是一种很好的做法,可用于调用其他人的API的任何代码,或定义供其他人使用的API.
混合符号.使用位置表示法指定第一个参数,然后切换到最后一个参数的命名表示法.
您可以使用此表示法来调用具有某些必需参数的过程,然后是一些可选参数.