我的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语句吗?
答案 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;