SQLSERVER2000中有一个函数newid(),可以产生一个唯一的32位的标识字符串,然后可以用scope_Identity()函数可以取出这个标识字符串,不知道在Oracle9i中有没有什么函数可以解决这个问题呀。
    例如在SQLSERVER中可以这样用
          insert into table1 (fsn) values (newid())  //其中fsn是一个大于32位的varchar类型
          select * from fsn=scope_Identity() //这样就可以找出fsn了。
   在Oracle中怎么解决呀???????? 
    急!!!!!!!!!!!!
     在线等!

解决方案 »

  1.   

    我要的是固定的位数的,而sequence不能做到这一点。
      

  2.   

    那就用rowid.select rowid from tablename;
      

  3.   

    create sequence SEQ1
    minvalue 1
    maxvalue 99999999999
    start with 21
    increment by 1
    cache 20;insert into table1 (fsn) values (SEQ1.nextval);
      

  4.   

    如果用rowid,不用插入,系统会自动生成
      

  5.   

    你可以使用sys_guid来产生唯一值。
      

  6.   

    对阿,Oracle已经提供了产生GUID的package了
      

  7.   

    固定的位数:
    insert into table1 (fsn) values (lpad(SEQ1.nextval,32,'0'));
      

  8.   

    能否取要插入行的rowid,并把这个rowid保存到这条记录中去!
      

  9.   

    只用一条insert 语句,而不要在用update语句来更新了!
      

  10.   

    用sys_guid产生的数据怎么把它取出来呢?在sqlserver中用newid()的话可以用scope_identity函数可以把刚插入的newid值取出来的。在Oracle怎么是什么函数呢?
      

  11.   

    create sequence seq1 start with 10000000000 step 1;
      

  12.   

    create sequence S_test
    minvalue 1
    maxvalue 9999999
    start with 21
    increment by 1
    cache 20
    cycle;
    INSERT INTO test VALUES(S_TMP_UPDATEUSERPOSTRANK.Nextval, ......)
      

  13.   

    select sys_guid from dual;
      

  14.   

    oracle中sys_guid,具体的看资料参考一下