每次学习了一些东西,后来总是忘了,学习java都快一年半了,总是发现很多东西忘掉的太快,于是就应该把它记下来,不知道人生是不是也应该这样,不应该忘记的,就需要用心铭记。
在Oracle当中,首先要声明的是它的sql操作和绝大部分sql语法是一致的,Orcle当中数据对象有四类:表 簇 视图 序列。
1,Oracle对sql的分类
根据sql语言功能的不同,Oracle数据库Sql语言可以分为以下6类。
1,数据定义语言(Date Define Language,DDL):用于定义、修改、删除数据库对象,包括create,alter,drop,grant,revoke,audit,noaudit等等。
2,数据操纵语言(Data Manipulation Language,DML):用于改变数据库中的数据,Insert,update,delete
3,数据查询语言(Data Query language,DQL):主要用于检索,包括select
4,事务控制(Transaction Control):用于将一组DML操作组合起来,形成一个事务并进行事务控制。包括事务提交commit,事务回滚callback,设置保存点savepoint和设置事务状态set transaction。
5,系统控制(System control):用于设置系统数据库参数,包括alter system。
6,会话控制(Session control):用于设置用户会话的相关参数,包括alter session。
对以上的语句来说,DDL语句是不可采用回滚的,DML语句可以回滚。在Oracle10g当中对DDL语句呢,有部分闪回技术,可以在网上搜索一下。
2,引入sql脚本的方法和相关设置
a,生成脚本文件([]表示可选)
save filename [create][replace][append] 例如:save E:/Tarena/oracle/script/script1.sql
这里呢,首先说明一个问题,save在有些操作系统环境下可能会出现不能生成sql脚本的问题,这究竟是什么原因,我也没弄明白,如果那位路过的朋友知道,请给我留言贴上你的解释或者链接。
所以对生成脚本文件采用直接新建的方式可能更可靠。
b,装载脚本文件
get filename [LIST]]|[NOLIST]]可选参数表示是否显示文件内容到缓冲区
比如 get E:/Tarena/oracle/script/script1.sql list
c,设置脚本,去掉一些无用的信息
set head off;
set feed off;
set echo off;
然后启动spool E:/Tarena/oracle/script/script1.sql
在完成sql语句的一些内容后关闭 spool off
最后恢复设置
set echo on;
set head on;
set feed on;
在这里每次装载脚本使用spool将屏幕内容保存到文件的时候,下一次如果没有采用apend方式的话,它里面的内容将被覆盖。