如何格式化NUMBER函数(Oracle SQL)?

c9x0cxw0  于 2023-08-03  发布在  Oracle
关注(0)|答案(1)|浏览(114)

我正在尝试重新创建一个类似于以下内容的查询:

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或类似变量时,我没有见过这种语法。

9ceoxa92

9ceoxa921#

因此,当在PL/SQL中有一个数字变量时,最好不要将它限制为像NUMBER(8,2)这样的值,因为如果你碰巧在该变量中选择了更大的值,这将导致异常。最好把它们编号。转换为字符时的格式是另一回事。因此,您可以用途:DBMS_OUTPUT.PUT_LINE('bonus = '||return_CHAR('99990.00'); RTM on to_char并格式化掩码。或者,更好的是,当选择PL/SQL中的某些变量时,使用%type和%rowtype(也适用于RTM),以避免在您选择的表被更改并且数据不再适合这些变量时出现意外。

相关问题