我被困在这个语句块上,并且在代码运行时不知道如何对输出进行编程,以显示付款金额为10.00美元,余额保持相同的格式。我的代码也提示我两次idpledge ...我在代码中有一些我不太了解的主题标记。使用Oracle 11g 2e和本书并不是很有帮助。如果有关于我正在听的初学者书籍或资源的建议(阅读)。代码如下:
SET SERVEROUTPUT ON;
DECLARE
pay_num NUMBER(2) := 0; /*initialize to 0 */
loop_count NUMBER(2) := 12; /*intialize to max number of months */
pay_amt NUMBER(8,2);
pledge_bal NUMBER(8,2);
v_pledgeamt NUMBER(8,2);
start_date DATE := '04-OCT-2012';
due_date DATE;
v_due_date VARCHAR2(15);
BEGIN
SELECT pledgeamt INTO v_pledgeamt
FROM DD_PLEDGE
WHERE idpledge=&idpledge;
pay_amt := (v_pledgeamt / loop_count);
due_date := start_date;
pledge_bal := (v_pledgeamt - pay_amt);
FOR i IN 1..loop_count LOOP
pay_num := pay_num + 1;
v_due_date := TO_CHAR(due_date, 'MM-DD-YYYY');
due_date := add_months(due_date, 1);
pledge_bal := (pledge_bal - pay_amt);
DBMS_OUTPUT.PUT_LINE (
'Payment Num: ' || pay_num
|| ' ' || 'Due Date: ' || v_due_date
|| ' ' || 'Amount Due: ' || pay_amt
|| ' ' || 'Balance: ' || TO_CHAR(pledge_bal, '$')); /* how to format with $*/
END LOOP;
END;
答案 0 :(得分:0)
如Docs所述,您可以将to_char与正确的格式化程序一起使用。在你的情况下,它将是to_char(pledge_bal, '$9,999.99')
使用 '$ 9,999.99' 格式可实现以下目标:
返回指定位置的逗号。您可以在数字格式模型中指定多个逗号。
返回小数点,即指定位置的句点(。)。
返回带有美元符号的值。
如果需要,您可以在上述链接中查看更多参数。