用oracle寫程序真麻煩!!!!(100)

Z

zbdzjx

Unregistered / Unconfirmed
GUEST, unregistred user!
我們原來的系統用的是sql server數據庫,但現在想改成oracle數據庫的,經過幾天的測試,快郁闷死了!!!先是轉換數據,這個還好,自己寫了一個小工具,將表結構、數據、視圖、主鍵、外鍵、索引……一次轉換成功。再是改代碼中的sql語句,sql server和oracle的多數sql語句差不多,但有幾個常用的語句就不一樣,改起來很麻煩!!!如:isnull、substring、+(字符串相加)……這些還不是頭大的,最麻煩的是視圖!!在sql server中,視圖套視圖是我們常用的,到oracle中,就報錯了(ORA-01445),就是說ROWID找不到了,在網上搜了半天,也沒有好的辦法解決。還有更奇怪的,假如有一個主從表,A和B,A表中有dh(主鍵),bz兩個字段,B表中有id(主鍵),dh,sl三個字段,建這樣一個視圖:select a.dh,a.bz,bb.sl from a left join (select dh,sum(sl)sl from b group by dh) bb on a.dh=bb.dh在此視圖中修改bz,保存時就報錯!!我都快崩溃了!!!難道真的改不了了???!!!!
 
S

szhcracker

Unregistered / Unconfirmed
GUEST, unregistred user!
换个思路也许好点儿。祝你好运!
 
X

xianjun

Unregistered / Unconfirmed
GUEST, unregistred user!
视图+触发器可以解决你的问题因为视图中有多个表,很多时候Oracle不知道你要更新哪个表,所以会报错。用触发器其实就是自己生成更新数据的SQL,所以可以解决这个问题。两个数据库的理念不一样,刚开始转肯定很不习惯的。就象我们当时从Oracle转SQL也是如此。
 
Z

zbdzjx

Unregistered / Unconfirmed
GUEST, unregistred user!
我們是用delphi寫的介面,用ado連接數據庫。用sql server時,直接用adoquery寫sql語句(select * from view1),再用數據感應控件顯示內容,用adoquery1.edit來修改數據,用adoquery1.post來保存數據。但用oralce,這些操作幾乎都不行了,難道要重寫整個系統??!!!而且我還不太了解究竟該怎樣寫了。
 

风清杨

Unregistered / Unconfirmed
GUEST, unregistred user!
习惯了SQL SERVER转ORACLE确定不习惯,像SQL有自增字段,而ORACLE没有,只提供一个自序变量的东西。SQL是从左到右分解条件,而ORACLE是从右到左分解。不过ORACLE确定比SQL性能优秀。以前一个朋友的系统是SQL写的,300个用户在线时经常塞住,后来用了半年换了ORACLE,就没事了。
 
Z

zbdzjx

Unregistered / Unconfirmed
GUEST, unregistred user!
個人感覺,sql server和oracle相比較就和windows和linux相比較差不多,微軟都是用犧牲性能來換取使用的方便,而oracle和linux則是為了性能等的提高而降低使用的方便。
 
Z

zbleetom

Unregistered / Unconfirmed
GUEST, unregistred user!
看到这么多大虾说到sql与oracle这么不一样,我们有些接口程序是delphi+sql写的,以后也要转oracle,这下麻烦了
 
H

hsgrass

Unregistered / Unconfirmed
GUEST, unregistred user!
转换肯定有痛苦的,坚持一下应该会胜利,oracle比mssql快的很明显
 
H

hongfeng0727

Unregistered / Unconfirmed
GUEST, unregistred user!
我以前用Oracle,现在回四川工作,公司用的是MSSQL,我觉得Oracle比MS的好用多了,尤其是并发,Oracle强多了
 

Similar threads

I
回复
0
查看
721
import
I
D
回复
0
查看
758
DelphiTeacher的专栏
D
D
回复
0
查看
737
DelphiTeacher的专栏
D
顶部