ITPub博客

首页 > 数据库 > Oracle > 【PLSQL】验证SQL的合法性

【PLSQL】验证SQL的合法性

原创 Oracle 作者:J_Force 时间:2016-05-25 16:44:44 0 删除 编辑
碰到需要验证SQL的合法性的情况(界面输入一段SQL,提供一个验证按钮),可以使用以下代码:

点击(此处)折叠或打开

  1. FUNCTION sql_validate(where_clause IN VARCHAR2) RETURN VARCHAR2 IS
  2.   v_cursor INTEGER;
  3.   v_sql VARCHAR2(2000);
  4. BEGIN
  5.   v_sql := 'SELECT COUNT(1) TEST ';
  6.   v_sql := v_sql || where_clause;
  7.   BEGIN
  8.     v_cursor := dbms_sql.open_cursor;
  9.     dbms_sql.parse(v_cursor, v_sql, 1);
  10.     dbms_sql.close_cursor(v_cursor);
  11.   EXCEPTION
  12.     WHEN OTHERS THEN
  13.       IF dbms_sql.is_open(v_cursor) THEN
  14.         dbms_sql.close_cursor(v_cursor);
  15.       END IF;
  16.       RETURN 'INVALID';
  17.   END;
  18.   RETURN 'VALID';
  19. END;



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29599494/viewspace-2106788/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-04-10

  • 博文量
    19
  • 访问量
    37203