如何存取Oracle Number(18)的字段?
各位大侠救命啊,有一个Oracle 8的表中一个字段的类型设计为Number(18),结果用TTable打开后发现是TFloatField类对象(本以为会是TLargeIntField类),AsFloat返回的数据类型为Float,精度只有15位,转换为串后不能正确显示,但用SQL Plus可以存取正确的数据。例程如下:
SQL:
CREATE TABLE TABLE1 (
INT64 NUMBER(18, 0)
)
Pascal代码:
var
s: String;
dbl: Double;
ext: Extended;
lgi: LargeInt;
begin
dbl := Table1.Fields[0].AsFloat;
ext := dbl;
lgi := Trunc(ext);
Str( lgi, s );
如果字段值为1234567890123456,则Table1.Fields[0].AsString为1.23456789012346E15,而s为1234567890123460。
SQL:
CREATE TABLE TABLE1 (
INT64 NUMBER(18, 0)
)
Pascal代码:
var
s: String;
dbl: Double;
ext: Extended;
lgi: LargeInt;
begin
dbl := Table1.Fields[0].AsFloat;
ext := dbl;
lgi := Trunc(ext);
Str( lgi, s );
如果字段值为1234567890123456,则Table1.Fields[0].AsString为1.23456789012346E15,而s为1234567890123460。
...全文
相关推荐
oracle字段类型小结
oracle字段类型小结 CHAR固定长度字符串,最大长度2000,bytes VARCHAR2可变长度的字符串,最大长度4000,bytes,可做索引的最大长度749 NCHAR根据字符集而定的固定长度字符串,最大长度2000
oracle18c安装包。。。。。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
Oracle数字类型number自增的实现代码
废话不多说了,直接给大家贴代码了,具体代码如下所示: 创建序列 create sequence seq_student start with 6 increment by 1 maxvalue 500 nominvalue nocycle nocache; 创建触发器 create or replace trigger trigger_student before insert on student for each row declare BEGIN select seq_student.nextval into :new.id from dual; END; 总结 以上所述是小编给大
Oracle18c-18.3.zip
Oracle18c(18.3)数据库驱动ojdbc8.jar及文档, 资源来源于Oracle官网, 压缩包中有详细说明
Oracle18c(18.3)数据库驱动ojdbc.jar
Oracle18c(18.3)数据库驱动ojdbc8.jar及文档, 资源来源于Oracle官网, 压缩包中有详细说明


