在vb.net程序中验证PLSQL语句

时间:2015-01-09 11:15:55

标签: .net vb.net plsql oracle11g

我的GUI中有一个TextEdit,它接受PlSql语句,用户可以在DB中进一步保存。要求是在保存之前验证此PlSql语句。在Oracle中,我们可以使用以下代码执行此操作:

DECLARE
    cursor_name INTEGER;
BEGIN
    cursor_name := dbms_sql.open_cursor;
    dbms_sql.parse(cursor_name,'select * from schema.TableName',DBMS_SQL.NATIVE);
    DBMS_SQL.CLOSE_CURSOR(cursor_name);
EXCEPTION
    WHEN OTHERS THEN
        DBMS_SQL.CLOSE_CURSOR(cursor_name);
        dbms_output.put_line('Invalid PlSql');
END;

因此,当给定的PlSql或SQL不是有效语句时,我收到错误消息“Invalid PlSql”。 任何人都可以建议我如何在我的vb.net代码中捕获此异常?我的意思是我可以在我的代码中执行此查询,但我不能在oder中的DB中创建任何存储过程来获取异常作为返回值。

我们可以在vb.net中验证/解析PlSql语句吗?

1 个答案:

答案 0 :(得分:0)

create procedure p_return_type(v_resp in out varchar2)
is
    cursor_name INTEGER;
BEGIN
    cursor_name := dbms_sql.open_cursor;
    dbms_sql.parse(cursor_name,'select * from schema.TableName',DBMS_SQL.NATIVE);
    DBMS_SQL.CLOSE_CURSOR(cursor_name);
EXCEPTION
    WHEN OTHERS THEN
        DBMS_SQL.CLOSE_CURSOR(cursor_name);
        v_resp:='Invalid PlSql';
        dbms_output.put_line('Invalid PlSql');
END;