with t as(
select 00107189084509445793 id from dual)
select id from t where id=1071890845094457931 1.07189084509446E17
会变成科学计数法,不会少一位,位数太多最好用varchar2类型
select 00107189084509445793 id from dual)
select id from t where id=1071890845094457931 1.07189084509446E17
会变成科学计数法,不会少一位,位数太多最好用varchar2类型
我看字符类型是nvarchar(30),应该不是字符类型的原因吧?因为我在别的电脑也用同一个软件是可以的,
在本机用SQL PLUS也是可以的
select * from v$version;
Oracle Database 10g Release 10.1.0.2.0 - Production
PL/SQL Release 10.1.0.2.0 - Production
CORE 10.1.0.2.0 Production
TNS for 32-bit Windows: Version 10.1.0.2.0 - Production
NLSRTL Version 10.1.0.2.0 - Productioncreate table t1(id1 nvarchar(30));
提示缺失右括号create table t(id nvarchar2(30));
insert into t values('00107189084509445793');
select id from t where id=00107189084509445793;
输出:
ID
00107189084509445793
而9I连接的正常。很奇怪???
select sscc from table sscc='0010718908450944579'试试。
接xiaodejun5241的code
PLSQL developer:select substr(id,1,1) from t;
结果为空:
select substr(id,1,2) from t;
结果:0select substr(id,1,1) from t;
结果为空:0
select substr(id,1,2) from t;
结果:00
SQLPLUS:问题依旧没解决我的版本:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for 32-bit Windows: Version 11.2.0.2.0 - Production