用NUMBER就可以,
DECLARE A AS NUMBER(10)就可以了。

解决方案 »

  1.   

    VC++里面Int类型只为32位,可以达到的最大值小于Number(10)的最大值DECLARE A AS NUMBER(10) 应该是在内嵌的SQL语句中使用,我想问的是在宿主变量中应该对应什么类型?
      

  2.   

    这个看过了,就是写的太模糊了,所以才来请教Table 4-5 C-Oracle Datatype Compatibility 
    Internal Type  C Type  Description  
    VARCHAR2(Y) (Note 1) 
     char 
     single character 
     
    CHAR(X) (Note 1) 
     char[n] VARCHAR[n] int short long float double 
     n-byte character array n-byte variable-length character array integer small integer large integer floating-point number double-precision floating-point number 
     
    NUMBER 
     int 
     integer 
     
    NUMBER(P,S) (Note 2) 
     short int long float double 
    char char[n] VARCHAR[n] 
     small integer integer large integer floating-point number double-precision floating-point number single character n-byte character array n-byte variable-length character array 
     
    DATE 
     char[n] VARCHAR[n] 
     n-byte character array n-byte variable-length character array 
     
    LONG 
     char[n] VARCHAR[n] 
     n-byte character array n-byte variable-length character array 
     
    RAW(X) (Note 1) 
     unsigned char[n] VARCHAR[n] 
     n-byte character array n-byte variable-length character array 
     
    LONG RAW 
     unsigned char[n] VARCHAR[n] 
     n-byte character array n-byte variable-length character array 
     
    ROWID 
     unsigned char[n] VARCHAR[n] 
     n-byte character array n-byte variable-length character array 
     
    Notes: 1. X ranges from 1 to 2000. 1 is the default value. Y ranges from 1 to 4000. 2. P ranges from 1 to 38. S ranges from -84 to 127. 
     
      

  3.   

    在VC++里面用类型__int64为64位,但是在Pro*C一旦将Number(10)的数据赋值给__int64,就还是提示“ORA-01455: 转换列溢出整数数据类型”,很郁闷
      

  4.   

    看清楚:
    Internal Type         C Type  Description  
    NUMBER(P,S) (Note 2)  short 
                          int 
                          long 
                          float 
                          double 
    没有__int64用long或者double就可以了