http://www.itpub.net/thread - 1499223 - 5 - 1. - html
星期一我写了这个存储过程:
<前> REPLACE  CREATE ,或是;PROCEDURE  plch_show_amounts ( ,,,amount1_in 数字拷贝 ,,amount2_in ,,拷贝数) 是 开始 ,,DBMS_OUTPUT.put_line ( ,,,,,TO_CHAR (plch_show_amounts.amount1_in, & # 39; FML999G999D99& # 39;)); ,,DBMS_OUTPUT.put_line ( ,,,,,TO_CHAR (plch_show_amounts.amount2_in, & # 39; FML999G999D99& # 39;)); 结束;/>之前
星期二,我有个同事觉得自己比任何人都知道该如何写好代码,他批评过程中出现的重复代码。“你为什么不把重复的代码放到一个嵌套的子过程?那样的话,假如你需要修改显示格式,或者其他和显示金额相关的东西,你只需修改一个地方。”
好吧,我也没法反对,所以我把代码移入一个嵌套的子过程。实际上,我在推出一个能使用的程序版本之前也这么干过几次。
下面的选项中哪些包含了一个对原始的plch_show_amounts的“重构”,从而在我执行这段代码之后:
我在屏幕上会看到这样的输出:
<前> 100.45美元 美元452666 .77点 >之前(一)
<前> REPLACE  CREATE ,或是;PROCEDURE  plch_show_amounts ( ,,,amount1_in 数字拷贝 ,,amount2_in ,,拷贝数) 是 ,,PROCEDURE show_one (amount_in 拷贝数) ,, ,才能开始 ,,,,,DBMS_OUTPUT.put_line ( ,,,,,,,,TO_CHAR (amount1_in, & # 39; FML999G999D99& # 39;)); ,才能结束; 开始 ,,show_one (plch_show_amounts.amount1_in); ,,show_one (plch_show_amounts.amount2_in); 结束;/>之前 <前> 完成,开始 2,,,,,,,plch_show_amounts (100.45, 452666.77); ,,3,结束; 4,才能/¥100.45 ¥100.45 PL/SQL procedure  successfully 完成 完成; >之前(B)
<前> REPLACE  CREATE ,或是;PROCEDURE  plch_show_amounts ( ,,,amount1_in 数字拷贝 ,,amount2_in ,,拷贝数) 是 ,,PROCEDURE show_one (amount_in 拷贝数) ,, ,才能开始 ,,,,,DBMS_OUTPUT.put_line ( ,,,,,,,,TO_CHAR (amount_in, & # 39; FML999G999D99& # 39;)); ,才能结束; 开始 ,,show_one (plch_show_amounts.amount1_in); ,,show_one (plch_show_amounts.amount2_in); 结束;/>之前 <前> 完成,开始 2,,,,,,,plch_show_amounts (100.45, 452666.77); ,,3,结束; 4,才能/¥100.45 ¥452666 .77点 PL/SQL procedure  successfully 完成 完成; >之前(C)
<前> REPLACE  CREATE ,或是;PROCEDURE  plch_show_amounts ( ,,,amount1_in 数字拷贝 ,,amount2_in ,,拷贝数) 是 ,,PROCEDURE show_one (amount1_in 拷贝数) ,, ,才能开始 ,,,,,DBMS_OUTPUT.put_line ( ,,,,,,,,TO_CHAR (amount1_in, & # 39; FML999G999D99& # 39;)); ,才能结束; 开始 ,,show_one (plch_show_amounts.amount1_in); ,,show_one (plch_show_amounts.amount2_in); 结束;/>之前 <前> 完成,开始 2,,,,,,,plch_show_amounts (100.45, 452666.77); ,,3,结束; 4,才能/¥100.45 ¥452666 .77点 PL/SQL procedure  successfully 完成 完成; >之前(D)
<前> REPLACE  CREATE ,或是;PROCEDURE  plch_show_amounts ( ,,,amount1_in 数字拷贝 ,,amount2_in ,,拷贝数) 是 ,,PROCEDURE show_one (amount1_in 拷贝数) ,, ,才能开始 ,,,,,DBMS_OUTPUT.put_line ( ,,,,,,,,TO_CHAR (plch_show_amounts.amount1_in, & # 39; FML999G999D99& # 39;)); ,才能结束; 开始 ,,show_one (plch_show_amounts.amount1_in); ,,show_one (plch_show_amounts.amount2_in); 结束;/>之前 <前> 完成,开始 2,,,,,,,plch_show_amounts (100.45, 452666.77); ,,3,结束; 4,才能/¥100.45 ¥100.45 PL/SQL procedure  successfully 完成 完成;