||||怎么对用户自定义的存储过程的正确性进行验证? 我現在的做法是具體的SQL語句不讓用戶編寫的,我們提供輸入的參數例如,表名、列名(中英文對照),運算關系:+,-,*,/,等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 语法和语义的检查可以执行explain plan for <用户写的sql>来判断是否正确。至于逻辑正确性(例如是否删除了不应该删除的数据),好像没有办法 在sql developer 里可以单步调试就是那个test 你可以把用户写的SQL作为字符串,传给存储过程,在过程里动态的执行判断她的返回值,但有些问题,因为SQL语句是对数据库操作的,所以如果只是想测试而不对数据库照成影响是不可能的,比如SQL:=‘UPDATE TABLE_NAME SET COL=222’; 后面你虽然知道语句是正确的,但已经对数据库造成了影响。 <<所以如果只是想测试而不对数据库照成影响是不可能的>>不可能???SQL:=‘explain plan for UPDATE TABLE_NAME SET COL=222’; 1、语法准确性只要看建好的过程状态是否valid就知道了。2、关于逻辑准确性,没办法。 厉害!explain plan for 很好用呵。。谢谢! 更新表问题。 select into 变量,但是表名是动态的,请问怎么实现? 急 ORACLE 关于递归查询,在线等 急救!!!oracle编辑器sql plus无法登录问题 Oracle9i里的 Procedure Builder在哪儿啊? 怎么才能启动oracle 9i 的OMS 打开oracle数据库的问题! 为什么我的Enterprise Manager Console启动起来后只有网络选项卡,没有数据库等东西呢 一个小问题 oracle8i中怎样建立对一个用户的而不是一张表的snapshot? 请教:oracle条件合计问题 紧急求助!!!!
至于逻辑正确性(例如是否删除了不应该删除的数据),好像没有办法
就是那个test
判断她的返回值,
但有些问题,因为SQL语句是对数据库操作的,所以如果只是想测试而不对数据库照成影响
是不可能的,比如
SQL:=‘UPDATE TABLE_NAME SET COL=222’;
后面你虽然知道语句是正确的,但已经对数据库造成了影响。
2、关于逻辑准确性,没办法。
谢谢!