关于问题前导,使用的数据表中涉及到的字段和类型:
在PLSQL中create、drop、truncate等DDL是没有办法直接执行的。
必须要使用:
Execute immediate ‘DDL语句’
但是我发现这样并不能执行!后面查阅发现,oracle中执行DDL语句需要使用变量的形式:
即 所谓的动态SQL语句
首先在declare中声明变量( 例如:sql varchar2(200):= ‘create table tmp(name varchar2(20), age number(3))’ ),再在begin和end之间 execute immediate才可以!
DML
关于DML insert、delete、update是可以直接执行的,而且通过SQL对象会返回受到影响的行数。
但是这里需要注意的是:如果你是在同一个PLSQL中创建了表,同时想在这个PLSQL中insert数据的话,就必须要小心了!!!
也要使用:executeimmediate的方式来执行:注意,最好也是通过变量的形式执行:
直接把语句通过 executeimmediate引在后面当然可以,但