首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

Oracle动态SQL的拼装要点

2012-11-12 
Oracle动态SQL的拼装要领Oracle的动态SQL语句用起来很方便,但其拼装过程太烦人。尤其在拼装语句中涉及到dat

Oracle动态SQL的拼装要领

Oracle的动态SQL语句用起来很方便,但其拼装过程太烦人。尤其在拼装语句中涉及到date类型字段时,拼装时要加to_char先转换成字符,到了sql中又要使用to_date转成date类型和原字段再比较。
例如这样一个SQL:

declarev_cursor number; --定义游标v_string varchar2(2999);v_row number;beginv_string := 'insert into t_object(a)  select COUNT(*) FROM user_objects where created > :incoming';--操作语句,其中:name是语句运行时才确定值的变量v_cursor:=dbms_sql.open_cursor;--打开处理游标dbms_sql.parse(v_cursor,v_string,dbms_sql.native);--解释语句dbms_sql.bind_variable(v_cursor,':incoming',sysdate-30);  --给变量赋值v_row := dbms_sql.execute(v_cursor);--执行语句dbms_sql.close_cursor(v_cursor);--关闭游标--dbms_output.put_line(v_row);commit;exceptionwhen others thendbms_sql.close_cursor(v_cursor); --关闭游标rollback;end;

热点排行