关于如何调试动态SQL代码的6条技巧

本文通过一个示例过程DROP_AY,介绍了调试动态SQL时应注意的六个关键点:1) 使用AUTHID CURRENT_USER定义子程序;2) 对于执行动态DDL,使子程序成为自主事务;3) 始终使用变量执行IMMEDIATE或OPEN;4) 处理动态SQL执行异常;5) 记录错误信息和尝试执行的变量;6) 在子程序中构建测试模式,以提高调试和安全性。
摘要由CSDN通过智能技术生成

MariaDB TX,在生产中得到验证,并由社区驱动,是一种适用于任何企业的完整数据库解决方案-现代应用程序的现代数据库。
通过我们的AskTOM PL/SQL Office时数节目:


   Declare
   v_Table all_tables.TABLE_NAME%type;
   v_Mnt varchar2(2):='08';
   Type Cur_type is Ref Cursor;
    C Cur_type;
   Begin
           v_Table:='ddi_ticket_10_1018';           
           Open C for 'SELECT * from bill.'||v_Table||v_Mnt||'Where called_nbr=123';
           End;

When executing this code, I face this Error message.
ORA-00933-SQL Command not properly ended
ORA-06512: At Line 9.
Please check the above code and modify for syntax correction
我一眼就能猜出问题出在哪里。

你能。

我不是想吹牛。我只是鼓励你不进一步阅读并检查代码。是什么导致了他的问题?

动态SQL可能很棘手-在打开之前就不那么复杂了-因为或立即执行是PL/SQL语言的复杂部分。但是,因为它非常容易搞乱您正在动态构建的SQL或PL/SQL。你可以:

省略“;”(来自PL/SQL代码)。
忘记在SQL各节之间留出空白。
有不匹配的括号。
时断时续。
在这种情况下,我回信说&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值