添加表的sql语句:alter table 表名 add 列名渣镇 数据类型改梁迟
列名使用参数如@col即可动态生成,至于数据类型可以设置成固定的,如核李果需要动态生成也可以设置成参数,在页面用下拉列表形式选择为参数赋值
用SQL语句添加表字段:alter table 表名add 字段名 字段类型;用select name from syscolumns where id=object_id(表名)查找出所有的表字段。然后再使用SELECT 查找到的字段 from 表名。
使用ResultSet动态读取数据库数据。ResultSet 是一个迭代模式指键的动态连接容器。迭代模式的容器遍历方式:
while(rs.next()){
//循环内容
}
rs.next()返回值是一个布尔值,表示迭代容器中是否还有肢顷下一条数据,即在迭历逗陆代过程中是否已经到结尾。直到迭代集合中再无数据rs.next()返回false
SQL文本在编译时是未知的。例如,SELECT语句包含的标识符(如表名)在编译时是未知的,或者WHERE子句的激缺条件数量在编译时是未知。
静态SQL不支持
例如,在PL/SQL中用静态SQL只能执行查询以及DML语句。如果想要执行DDL语句,只能使用动态SQL。
当让使用静态SQL,也有它的好处:
编译成功验证了静态SQL语句引用有明灶辩效的数据库对象和访问这些对象的权限
编译成功创建了模式对象的依赖关系
动态SQL语句是一个最多只能返回一行的SELECT语句
使用动态SQL语句辩晌返回单列,查询SCOTT的薪水:
declare
v_sql_text varchar2(1000)
v_sal number
v_enameemp.ename%type := 'SCOTT'
begin
v_sql_text := 'select e.sal from emp e where e.ename = :ename'
execute immediate v_sql_text
into v_sal
using v_ename
dbms_output.put_line(v_ename || ':' || v_sal)
end
使用动态SQL返回一条记录,查询SCOTT的基本信息:
declare
v_sql_text varchar2(1000)
v_enameemp.ename%type := 'SCOTT'
vrt_empemp%rowtype
begin
v_sql_text := 'select * from emp e where e.ename = :ename'
execute immediate v_sql_text
into vrt_emp
using v_ename
dbms_output.put_line(v_ename || '的基本信息:')
dbms_output.put_line('工号:' || vrt_emp.empno)
dbms_output.put_line('工资:' || vrt_emp.sal)
dbms_output.put_line('入职日期:' || vrt_emp.hiredate)
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)