在pro*c,我在向一个有default值的字段插入变量时候,希望如果这个值是空,就把default赋给他,否则就把这个值给他,请问怎么写?原写法是NVL(trim(:aaa),default),但是发生了ORA-00936: missing expression错误

解决方案 »

  1.   

    先判断当前值是不是空值?
    if value is null
    insert into tb(....) values(.....) 默认字段不插入值
    else
    insert into tb(....,aaa) values(.....,value) 默认字段插入值只能这样了
      

  2.   

    但我不希望用判断语句,因为整个insert中这样的处理很多,有什么好办法吗?
      

  3.   

    想用默认值的字段可以不写。
    这样,插入时,自动的置为deault值。
      

  4.   

    我的问题是,如果此字段为空才用default,如果不为空还是用原值的
      

  5.   

    只有自已在拼sql时做处理了(如1楼写说的),oracle似乎不支持nvl(:a, default) 这种写法
      

  6.   

    我目前知道在OCI中,绑定方式中有个标志位可以设置,
    对Pro*C 不是很熟悉。