select max(ID) from organization  把它取出来后怎么处理才能 insert到 varchar类型的列里?

解决方案 »

  1.   

    如果ID是数值型或varchar型,并且长度没有超过要写入字段的长度,那么不用处理就可以直接插入,如
    insert into T (FIELD_VARCHAR) select max(ID) from ...
      

  2.   

    INSERT INTO ACC (
    PID,                                       
    PORGID)
     values
     (
    1,
    SELECT ( TO_CHAR(MAX(ID))) FROM ORGANIZATION)我写的,不过它报错"缺少表达式"   PID为NUMBER类型,PORGID为VARCHAR类型 ,ORGANIZATION的ID为NUMBER类型
      

  3.   

    INSERT INTO ACC (
    PID,
    PORGID)
    SELECT 1,( TO_CHAR(MAX(ID))) FROM ORGANIZATION
      

  4.   

    INSERT INTO ACC (
    PID,                                       
    PORGID)
    select 
    accid.nextval,
    ( TO_CHAR(MAX(ID))) FROM ORGANIZATIONaccid.nextval是ACC列PID的增加1,不过上面的代码执行起来报"此处不允许序号"错误,如果我想执行对ACC的PNAME列插入值,如下所示  
    <insert id="Insertacc"
    parameterClass="businessmanagement">
    INSERT INTO ACC (
    PID,                                       
    PORGID,                     
    PNAME,                        
    PPWD,                           
    PKEYINFO,                     
    PTYPE,                           
    PSTATE,                         
    PAGE,                             
    PADDRESS,                        
    PFAX,                             
    PTEL,
    PEMAIL)
    select 
    accid.nextval,
    ( TO_CHAR(MAX(ID))) FROM ORGANIZATION,
    #PNAME#,
    #PPWD#,
    #PKEYINFO#,
    #PTYPE#,
    #PSTATE#,
    #PAGE#,
    #PADDRESS#,
    #PFAX#,
    #PTEL#,
    #PEMAIL#</insert>这样写后台倒是传进值了,不过也报错,这里oracle的大虾帮忙看一下那个插入语句有没有写对
      

  5.   

    这是什么? spring?
    那就老实点先提出来放到一个变量里,再insert
    1. temp varchar2(20)
    select TO_CHAR(MAX(ID)) into temp FROM ORGANIZATION2. INSERT INTO ACC (
    PID,
    PORGID,
    PNAME,
    PPWD,
    PKEYINFO,
    PTYPE,
    PSTATE,
    PAGE,
    PADDRESS,
    PFAX,
    PTEL,
    PEMAIL) values(accid.nextval,temp,.... )