Oracle学习笔记(二)——在PL/SQL中执行各种SQL语句
定义语言DDL:create drop truncate
操作语言DML:修改类:insert delete update
查询类: 查询单行,查询多行
在PL/SQL中执行SQL语句需要注意 DDL不能直接执行,DML中的增删改可以执行.
赋值的方式有两种:①XXX := OOO; ②用select XXX into OOO
游标:对象或查询数据所在的内存地址,保存了增删改语句执行后的状态
游标分为隐式游标和显式游标:
隐式游标对象为SQL,我们常用的是SQL%ROWCOUNT得到执行SQL语句所影响的行数;SQL%FOUND表示数据是否存在;
显式游标分为游标FOR循环和CURSOR对象:
①游标FOR循环:语法为 FOR 游标对象名 in 查询语句 LOOP .....END LOOP
在需要对查询中每条记录进行逐条处理时用游标FOR循环,在很多资料上有不少人也将FOR循环归纳为隐式对象的范畴
②CURSOR:必须用户自己定义,自己打开,自己循环,自己关闭,简称为dofw
使用游标需要以下步骤:
定义游标: CURSOR 游标对象名 is 查询语句;
定义行标量: 行变量名 游标对象名%ROWTYPE;
打开游标: OPEN 游标对象名;
循环前必须要先执行FECTH语句,该语句执行机制是先取得当前行数据,然后指针下移一位,基本语法为: fetch 游标对象名 into 行变量名;
循环语句:while(游标对象名%FOUND) LOOP .... END LOOP;
关闭游标:CLOSE 游标对象名;
PL/SQL中执行字符串:
execute immdiate(String) String表示需要执行的SQL字符串.
如果查询时返回多条记录,则需要使用: OPEN 游标变量名 FOR 查询语句
用: TYPE 游标变量名 IS REF CURSOR定义游标变量类型
之后操作与dofw操作一样;
扩展:
导数据:
如果用Oracle导入导出数据
导出:exp scott/tiger@连接名 file=c:\1.dmp
导入:imp scott/tiger@连接名 file=c:\1.dmp
如果用PL/SQL DEV导入导出数据
导出insert语句,create 这叫 sql脚本!
游标CURSOR对象使用代码展示:
①:
DECLARE
CURSOR my_cur IS SELECT * FROM emp;
my_row my_cur%ROWTYPE;
BEGIN
OPEN my_cur;
FETCH my_cur INTO my_row;
WHILE(my_cur%FOUND)
LOOP
dbms_output.put_line(my_row.ename);
FETCH my_cur INTO my_row;
END LOOP;
CLOSE my_cur;
END;
②:
DECLARE
mysql VARCHAR2(4000);
TYPE my_cur_type IS REF CURSOR;
my_cur my_cur_type;
my_row emp%ROWTYPE;
a VARCHAR2(100);
BEGIN
mysql := 'select * from emp';
OPEN my_cur FOR mysql;
FETCH my_cur INTO my_row;
WHILE(my_cur%FOUND)
LOOP
dbms_output.put_line(my_row.ename);
FETCH my_cur INTO my_row;
END LOOP;
CLOSE my_cur;
END;
- 利用pl/sql执行计划评估SQL语句的性能简析
- PL/Sql快速执行 insert语句的.sql文件
- PL/SQL Developer执行光标所在行SQL语句
- 利用pl/sql执行计划评估SQL语句的性能简析
- 利用pl/sql执行计划评估SQL语句的性能简析
- oracle学习笔记 SQL语句执行过程剖析讲课
- 利用pl/sql执行计划评估SQL语句的性能简析
- PL/SQL的if语句的执行顺序
- 利用pl/sql执行计划评估SQL语句的性能简析
- PL_SQL中执行SELECT … INTO …语句时,如果返回结果集为空
- oracle 执行PL/sql语句
- 利用pl/sql执行计划评估SQL语句的性能简析
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程十 写执行语句
- [PL/SQL] oracle sql语句 存储过程执行慢,单独执行快
- pl/sql查看后台数据库执行语句
- sql server 各种查询sql语句的分页存储过的执行效率
- 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
- 利用pl/sql执行计划评估SQL语句的性能
- 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
- 同样的一句SQL语句在pl/sql 代码块中count 没有数据,但是直接用SQl 执行却可以count 得到结果