时间:2021-07-01 10:21:17 帮助过:2人阅读
这样还是登录不了的,还要配置奇葩OCI
目录地址:设置ORACLE的主目录
OCI地址: 如果主目下BIN文件的OCI设置了不能用,就要单独下载一个 OCI.dll,填写下载的OCI.DLL地址
OK这样就能够跑起来了
下载:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
Instant Client for Microsoft Windows (x64)
将它解压覆盖到 Navcat 安装目录下的 Navicat\Oracle\servers\ora
设置刚才覆盖的地址
OK可以跑起来了
如果使用PLSQL可能不会遇到这种问题他会把你的表自动转成大写,假如你用Navcat建一个表为Student ,
你使用 select * from Student是查询不到这个表的,只能写成这样select * from "Student" 所以建表和字段需要改成大写 这样在查询的时候会很方便。
MYSQL SQLITE SQLSERVER 都可以使用@参数化 ,而ORACLE只能使用 : 作为参数符号
坑了我最长时间的一个坑,就是参数化的顺序问题,这个问题同样不是很多人都会遇的到,因为我用的是最底层的Ado.net
select * from Student where name=:name and id=:id
我的参数是
new OracleParamer[] { id=1,name="2" }(数组不是这么声名只是让你们看的更清楚些。)
因为顺序不同导致错误 所以必须要写成
new OracleParamer[] { name="2" ,id=1}
(经过各种排除法才找到了是顺序引的BUG,当时血差点吐出来了,难道Oracle和Access一样不智能)
解决这个问题的方法就是
将 SqlCommand.BindByName = true;
设置后顺序问题就解决了,解决问题很容易,难的是找不出问题点在哪儿。
如果你写成 insert (xxx) values (xxxx);select xxx; 这样是会报错的,要加上begin end才可以执行多条 ,貌似 begin end不能用于查询只能是 update delete insert
创建一个序列,然后行入 insert (id) values (序列名.Nextval) 查询当前序列用 SELECT 序列名.currval from dual 相当于select @@identity
另外OracleSugar.ORM 已经转制成功了 花了些时间,在测试2天就会发布。
可以先了解下 SqlSugar ORM http://www.cnblogs.com/sunkaixuan/p/5654695.html
从SqlServer转手Oracle的一些坑
标签: