最近工作中用到了oracle,因为以前一直用的mysql
这里记录一下orcale与mysql一些不同的地方,后续会继续添加
1》oracle没有limit
在mysql中如果要查询结果集的第一条,可以这么写:
SELECT * FROM T WHERE NUM = 6768 ORDER BY ID DESC LIMIT 1
在oracle中只有这么写:
SELECT * FROM T WHERE rownum = 1 AND NUM = 6768 ORDER BY ID DESC
注意:rownum条件不能写在ORDER BY 条件之后
2》left join左连接查询如果where后面带上副表的查询条件,那么左连接的效果是会失效的,即和innerjoin是一样的
解决:在on 条件后面带上副表的连接条件
3》最近安装oracle客户端的时候,出现了很多问题,有的库可以连上,有的连不上报错:
eg:the network adapter could not establish the connection
eg:ORA-12154:TNS:could not reslove the connect identifier specified
百度的很多都不适合,我这边的情况是要把tnsnames.ora文件替换
Navicat连接oracle的时候由于oci文件的原因需要重新下载与服务端匹配的文件,所以我这里Navicat premium12需要的是
instantclient_10,我的路径为D:\appinstall\Navicat Premium 12\instantclient_10_2
在文件夹下新建network/admin,之后将自己需要的ora文件放置进去,重启客户端即可
我用的客户端是navicat,后来也用了oracle sqldeveloper客户端,但是连接一个类型为TNS的数据库时网络别名下拉
一直没有,自己也输不进去,后来发现是要在系统变量里加入一个变量,其值是ora文件的路径