用户传给我的一组SQL 语句:(语句是不断变化) 
update a059 set a059.g05903 = a059.g05915/(100+a059.g05916)+CONVERT(left(a059.g05913,3),NUMERIC);
update a058 set a058.a05805 = CONVERT(a059.g04502,DATE);用ORACLE的存储过程(函数)怎么把用户传过来的SQL转换为ORACLE的语句并执行:
将CONVERT转换为ORACLE 的转换函数
update a059 set a059.g05903 = a059.g05915/(100+a059.g05916)+to_number(left(a059.g05913,3));
update a058 set a058.a05805 = to_date(a059.g04502,'yyyy-mm-dd');

解决方案 »

  1.   

    难度不小,也很麻烦~
    让他直接传ORACLE语法的语句不就结了吗?
      

  2.   

    update a059
       set a059.g05903 = a059.g05915 / (100 + a059.g05916) +
                         to_number(substr(a059.g05913,1,3));
    update a058 set a058.a05805 = to_date(a059.g04502, 'yyyy-mm-dd');
      

  3.   

    是要弄个固定的存储过程来将sql server的语句解析成oracle的吗?
    他的语句有固定的格式吗?
      

  4.   

    -- 找规律关在存储过程中使用REPLACE函数用ORACLE函数替换SQL SERVER函数。
    UPDATE A059 SET A059.G05903 = A059.G05915/(100+A059.G05916)+TO_NUMBER(SUBSTR(A059.G05913,1,3)); 
    UPDATE A058 SET A058.A05805 = TO_DATE(A059.G04502,'YYYY-MM-DD');