使用sqlplus -s $username/$password @$dbserver @$sql $path
执行之后,数据是 零点多少的 比如0.123 ,生成的数据文件就把最前面的零省略掉了,变成 .123使用什么命令会把前面的0保留下来

解决方案 »

  1.   

    在要执行的sql语句中把这个字段用to_char()函数转化一下就可以了。
      

  2.   

    col your_column_name format 999999990.999
      

  3.   

    补充一下,好比说这条记录a1字段数据为0.123,a2字段数据为0.456
    select a1, a2 from table
    这样显示正常, 0.123 0.456 都正常显示出来
    如果两个字段拼接在一块 select a1||'|'||a2 from table
    显示的结果就把最前面的0省略掉了。  .123|.456也问一下 如果这样的数据 入到其他数据库比如informix,这样可以添加进去吗?
      

  4.   

    select to_char(0.123,'0.000') from dual;
      

  5.   

    select to_char(0.123,'0.000') from dual;这样的话只适合不大于1的数据,假如有几个数据不准确,像成功率或接入率这样不能大于1的数据由于其他原因造成的数据大于1,使用者to_char函数的话,结果显示成####这样的符号。我使用sqlplus -s $username/$password @$dbserver @$sql $path 这个命令生成的数据文件,就是为了分发到其他服务器,供他们进行入库。如果有.123、.456这样的数据,informix数据库可以识别码?
      

  6.   

    可以像下面这样
    不知道能满足楼主的要求不
    SQL> create table t2(num number);Table created.SQL> insert into t2 values(0.123);1 row created.SQL> insert into t2 values(1.233);1 row created.SQL> insert into t2 values(12.433);1 row created.SQL> commit;Commit complete.SQL> select * from t2;       NUM
    ----------
          .123
         1.233
        12.433SQL> col num format 99990.999
    SQL> select * from t2;       NUM
    ----------
         0.123
         1.233
        12.433
      

  7.   

    取最大可能的位数,整数部分前面加上9,最后一位为0,小数部分取需要保留的位数,用0,然后用to_char格式化
    SQL> select to_char(0.23,'999999990.0000') from dual;TO_CHAR(0.23,'999999990.0000')
    ------------------------------
             0.2300SQL> select to_char(1.23,'999999990.0000') from dual;TO_CHAR(1.23,'999999990.0000')
    ------------------------------
             1.2300SQL> select to_char(11234.23,'999999990.0000') from dual;TO_CHAR(11234.23,'999999990.00
    ------------------------------
         11234.2300
      

  8.   

    这种格式的数据可以入到informix里面去,谢谢了!