我正在尝试重新创建一个类似于以下内容的查询:
DECLARE
bonus NUMBER(8,2);
BEGIN
SELECT salary * 0.10 INTO bonus
FROM employees
WHERE employee_id = 100;
END;
DBMS_OUTPUT.PUT_LINE('bonus = ' || TO_CHAR(bonus));
字符串
但我不懂数字的语法。(8,2)中的2的目的是什么?这是否将结果四舍五入到小数点后两位?在处理VARCHAR2或类似变量时,我没有见过这种语法。
1条答案
按热度按时间9ceoxa921#
因此,当在PL/SQL中有一个数字变量时,最好不要将它限制为像NUMBER(8,2)这样的值,因为如果你碰巧在该变量中选择了更大的值,这将导致异常。最好把它们编号。转换为字符时的格式是另一回事。因此,您可以用途:DBMS_OUTPUT.PUT_LINE('bonus = '||return_CHAR('99990.00'); RTM on to_char并格式化掩码。或者,更好的是,当选择PL/SQL中的某些变量时,使用%type和%rowtype(也适用于RTM),以避免在您选择的表被更改并且数据不再适合这些变量时出现意外。