最近要和另一套系统对接,对方用的是Oracle,硬着头皮上了,从Oracle的安装、部署、存取数据,技术有了很大提升,不再有神秘感和恐惧感了。
1、服务器都是64位,所以都装了64位的Oracle和PlSql。
2、如果服务器超过32核,会安装不了,卡在复制数据库2%处。公司服务器好像是16核,在BIOS里开了超线程,系统中显示32核,按理是刚刚好的,但一样用不了。试过把超线程关了,在系统里看到变16核了也不行。最后还是把超线程开起来,在msconfig的引导里设置成16核才正常了。
3、Oracle装完字符集怎么是UTF16的,可能安装时有选项但没注意。客户端字符集比较好改,服务器稍麻烦些,但网上也有教程,对着敲一遍就行。如果字符集对不上,update表时,中文进不去,会乱码。
4、Oracle的几个概念和SqlServer不一样,Oracle的表空间,类似SQL的库;Oracle的包,类似SQL的存储过程/函数;Oracle的序列,类似SQL的自增;
5、建表空间、建用户、分配权限、导表、脚本等,要在sqlplus下执行,DOS最好右键 -> 管理员运行
6、sqlplus下每行末尾要分号,换行的话好像要shift + enter,如果从其它地方复制的话,中间不能带空行。
7、PL/SQL用着还算不错,基本能像SSMS那样顺手了,本身功能比较强大了,但没有像SqlPrompt那样牛X的插件辅助(网上找了一圈没找到)。如果是UPDATE、DEL之类的话,默认是事务的,要提交事务。选择多条SELECT语句的话,SqlServer是竖着排下来,PL/SQL是一排横着排。如果要编辑,PL/SQL有个方便的就是直接在末尾FOR UPDATE,再点那个锁就可以直接在查询界面编辑了。不知SSMS为何不借鉴下这功能,有个Ctrl + 1还是2/3之类的,也有类似效果,可以在查询中直接修改,但为何不干脆做到普通查询界面。
8、SQL备份文件是bak,用SSMS导入。Oracle的是dmp,在DOS下导入。还有种pde是在PlSQL里用导入表的。本来PlSql好像也可以直接导dmp的,但试了不成功,在DOS下就可以了。
9、在SQL存储过程里操作Oracle,一般用OPENQUERY,但要带参数的话比较麻烦。直接用链接服务器也可以,但据说效率不如OPENQUERY。
10、Oracle没有自增键,要用序列。如果插入一条数据,可以临时去取SEQ_XX.NEXTVAL,如果是多条就不行了,要弄个触发器。弄好之后就和SQL一样用了,插入时不用管那列了,就当它是SQL的自增列。Oracle不知怎么要绕这一大圈,应该可以后台处理掉吧,或者弄个简单些的语法糖。
11、Oracle没有SQL的TOP N了,只有ROWNUM,不如SQL方便。
12、apache-Tomcat要先装Jre/Jdk之类的才可以,装完后要配系统参数JAVA_HOME,我加了当场还无效,要重启才行。。。那平时服务器不方便重启不是用不了?apache可以不用安装,复制文件进来,改下配置就可以
13、apache不能和IIS共用端口,80被IIS用了,apache就只能用其它端口了。
最近天天加班,睡眠质量也变差了,但也学到不少。