2011-10-14 对变量的引用
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,http://www.itpub.net/thread-1499223-5-1.html46 楼星期一我写了这个存储过程:CREATE OR REPLACE PROCEDURE plch_show_a
千家信息网最后更新 2025年11月07日2011-10-14 对变量的引用
http://www.itpub.net/thread-1499223-5-1.html
46 楼
星期一我写了这个存储过程:
CREATE OR REPLACE PROCEDURE plch_show_amounts ( amount1_in IN NUMBER, amount2_in IN NUMBER)ISBEGIN DBMS_OUTPUT.put_line ( TO_CHAR (plch_show_amounts.amount1_in, 'FML999G999D99')); DBMS_OUTPUT.put_line ( TO_CHAR (plch_show_amounts.amount2_in, 'FML999G999D99'));END;/
星期二,我有个同事觉得自己比任何人都知道该如何写好代码,他批评过程中出现的重复代码。"你为什么不把重复的代码放到一个嵌套的子过程?那样的话,假如你需要修改显示格式,或者其他和显示金额相关的东西,你只需修改一个地方。"
好吧,我也没法反对。所以我把代码移入一个嵌套的子过程。实际上,我在推出一个能使用的程序版本之前也这么干过几次。
下面的选项中哪些包含了一个对原始的plch_show_amounts的"重构",从而在我执行这段代码之后:
BEGIN plch_show_amounts (100.45, 452666.77);END;/
我在屏幕上会看到这样的输出:
$100.45$452,666.77
(A)
CREATE OR REPLACE PROCEDURE plch_show_amounts ( amount1_in IN NUMBER, amount2_in IN NUMBER)IS PROCEDURE show_one (amount_in IN NUMBER) AS BEGIN DBMS_OUTPUT.put_line ( TO_CHAR (amount1_in, 'FML999G999D99')); END;BEGIN show_one (plch_show_amounts.amount1_in); show_one (plch_show_amounts.amount2_in);END;/
SQL> BEGIN 2 plch_show_amounts (100.45, 452666.77); 3 END; 4 /¥100.45¥100.45PL/SQL procedure successfully completedSQL>
(B)
CREATE OR REPLACE PROCEDURE plch_show_amounts ( amount1_in IN NUMBER, amount2_in IN NUMBER)IS PROCEDURE show_one (amount_in IN NUMBER) AS BEGIN DBMS_OUTPUT.put_line ( TO_CHAR (amount_in, 'FML999G999D99')); END;BEGIN show_one (plch_show_amounts.amount1_in); show_one (plch_show_amounts.amount2_in);END;/
SQL> BEGIN 2 plch_show_amounts (100.45, 452666.77); 3 END; 4 /¥100.45¥452,666.77PL/SQL procedure successfully completedSQL>
(C)
CREATE OR REPLACE PROCEDURE plch_show_amounts ( amount1_in IN NUMBER, amount2_in IN NUMBER)IS PROCEDURE show_one (amount1_in IN NUMBER) AS BEGIN DBMS_OUTPUT.put_line ( TO_CHAR (amount1_in, 'FML999G999D99')); END;BEGIN show_one (plch_show_amounts.amount1_in); show_one (plch_show_amounts.amount2_in);END;/
SQL> BEGIN 2 plch_show_amounts (100.45, 452666.77); 3 END; 4 /¥100.45¥452,666.77PL/SQL procedure successfully completedSQL>
(D)
CREATE OR REPLACE PROCEDURE plch_show_amounts ( amount1_in IN NUMBER, amount2_in IN NUMBER)IS PROCEDURE show_one (amount1_in IN NUMBER) AS BEGIN DBMS_OUTPUT.put_line ( TO_CHAR (plch_show_amounts.amount1_in, 'FML999G999D99')); END;BEGIN show_one (plch_show_amounts.amount1_in); show_one (plch_show_amounts.amount2_in);END;/
SQL> BEGIN 2 plch_show_amounts (100.45, 452666.77); 3 END; 4 /¥100.45¥100.45PL/SQL procedure successfully completedSQL>
答案BC
http://www.itpub.net/thread-1499223-6-1.html 52楼
Steven 建议你仔细审查在内嵌子过程里对全局变量、自身参数的引用情况。在很多情况下,最好把内嵌子过程转移出来,便于代码共享和调试。
知识点后补
代码
过程
情况
星期
变量
原始
那样的话
东西
全局
参数
只需
同事
地方
实际
实际上
屏幕
建议
最好
格式
版本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技活动中心
黄浦区网络技术服务价格合理
qgis数据库插件
ssm数据库新建字段不识别
数据库当前状态
服务器一键管理
mysql用哪个数据库管理软件
梅州打卡软件开发
宽带显示服务器无响应是什么回事
如何落实网络安全管理制度
类似万得数据库
姜堰区网络技术
Arma3进入服务器没有人物
互联网科技公司选楼
主机代表一台服务器吗
时尚网络技术加盟十大品牌
温州.net软件开发
网络安全信息自查报告
数据库备份后可以查询
啥叫定制软件开发
大型机 服务器
夏天的服务器
星星海服务器采用的什么国家授权
守护神 服务器
网络安全平安建设方案
网络安全小组领导办公室
服务器阵列卡是什么
银河麒麟服务器操作系统涉密版
烟雨红尘小说软件开发
软件开发的编程阶段