PL/SQL神秘箭头操作符

 倒带灬樱花巷_317 发布于 2023-02-12 14:42

我们经常可以在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或其他文档中找到它.

1 个回答
  • 这是一种将参数传递给名为not notation的PL/SQL子例程的方法.
    有关更多信息,请参阅Oracle官方文档:http:
    //docs.oracle.com/cd/B12037_01/appdev.101/b10807/08_subs.htm#sthref1013

    当您不知道程序预期的参数数量或预期的顺序时,它主要用于它.因此,您只需将要传递的每个参数命名为相应的值即可.

    摘自文档:

    位置符号.您可以按照与在过程中声明的顺序相同的顺序指定相同的参数.

    这种表示法是紧凑的,但如果您以错误的顺序指定参数(尤其是文字),则很难检测到该错误.如果过程的参数列表发生更改,则必须更改代码.

    命名符号.您可以指定每个参数的名称及其值.箭头(=>)用作关联运算符.参数的顺序并不重要.

    这种表示法更加冗长,但使您的代码更易于阅读和维护.如果过程的参数列表发生更改,有时可以避免更改代码,例如,如果重新排序参数或添加了新的可选参数.命名符号是一种很好的做法,可用于调用其他人的API的任何代码,或定义供其他人使用的API.

    混合符号.使用位置表示法指定第一个参数,然后切换到最后一个参数的命名表示法.

    您可以使用此表示法来调用具有某些必需参数的过程,然后是一些可选参数.

    2023-02-12 14:47 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有