我是第一次用SQLPlus,之前我只用过MS SQL,用到Oracle数据库是因为我们公司用Oracle,而我又主持了一个项目要连接到Oracle数据库,迫使我来用它的客户端工具。
因为是第一次用,又没有任何准备,手头没有使用手册也没有人教我,只好凭自己的经验和知识,摸索着用。配置“Net Configuration Assistant”就花了不少时间,主要原因是管服务器的人不愿告诉我一些参数,我只好凭着程序里的信息去猜,总算连通了。
SQL Plus连上服务器后,我很自然的输入一条查询语句,回车,却没有我期望的结果,出来一个数字 2,再回车就回到“SQL>”提示符。我一开始还以为 2 是查询返回的记录或者至少是跟记录相关的什么统计数据之类呢。但是不论我查什么表都是返回2,我确定这是一个使用问题了,找了一圈环境参数的设置说明,没有结果,到Google上去查,得到说法了。原来是SQL语句没有结束,要加一个“;”做为结束符。如果不加这个分号的话,就会出现一个2表示第二行,让你继续输入sql语句。
接下来,我做了个Insert 操作,但是查询表没有看到新添加的记录,再去Google查,发现要用Commit命令,Commit 后面也要加“;”。
我因为有大量重复的插入语句,我把SQL语句存在文本文件里,用Notepad打开,语句里有中文,粘贴到SQLPlus后,中文全部变成“?”,实际执行插入,再调出来看也是“?”。至今没有找到明确解释。我用了两个替代方法,一个是用 SQLPlus Worksheet,粘贴到里面没有乱码,显示正常。另一个方法就是不用Notepad打开文本文件,比如用Ultraedit或MSE7,从这里面复制再粘贴到SQLPlus就没有问题。
另外接触到一些其它知识,罗列一下:
1. Help 命令,这个很有用,可以列出SQLPlus中所有命令,也可以解释具体的某个命令。
2. Show All 显示所有系统参数,可以把 All 替换成单个变量。
3. DESC[RIBE] tablename,列出表的字段定义。还可以看视图,函数,过程等的定义。在MS SQL Server中我们是用 sp_help 过程看表的信息。
4. select table_name from user_tables; 该语句查询本用户下所拥有的所有表的表名。
5. SQLPlus的buffer中缓存最后一条SQL语句,可以使用“/”来执行这最后一条SQLl语句,用Edit命令打开编辑程序,显示的也是这最后一条SQLl语句。
6. Select * from V$NLS_PARAMETERS ; 查看服务器端字符集。