2010-04-03 109 views
1

我想声明g_num,数字数据类型的大小,它给出了一个错误,但在varchar2的情况下,它不会。sql plus中声明变量关键字的变量(oracle 9i)?

variable g_name varchar2(5);//correct accept size for varchar 2 
variable g_num number(23);//Gives an error 

    " VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) | 
       VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) | 
       NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR ] ]" 

请建议!

回答

4

答案已经出现在您的错误消息中:NUMBER不允许SQL * Plus中的精度。

VARIABLE g_num NUMBER; 

的作品。

这是SQL * Plus中的list with valid variable declarations

documentation说:

NUMBER
创建类型NUMBER的具有固定长度的变量。


不幸的是,我不知道为什么你不能在SQL * Plus指定的精度,但我已经能够存储1.0E+125与我的测试。

你需要什么精度?