oracle資料庫問題,關於oracle資料庫匯出問題,錯誤如下

2022-03-04 22:44:32 字數 1669 閱讀 4057

1樓:想發錢的乞丐

1、select ename,

decode(sign(sal - 1000), -1, 0,

decode(sign(sal - 2000), -1, sal * 0.1,

decode(sign(sal - 3000), -1, sal * 0.15, sal * 0.2))), sal

from emp

2、select ename,

(case

when sal < 1000 then 0

when sal >= 1000 and sal < 2000 then sal * 0.1

when sal >= 2000 and sal < 3000 then sal * 0.15

else sal * 0.2

end),sal

from emp;

第一種寫法的錯誤:decode用法錯誤,括號內應該是表示式、值、結果而不是列、判斷列。

第二種寫法的錯誤:格式應該是這樣 case when 表示式 then end,或是這樣 case 表示式 when 值 then 結果 end。

2樓:bluebird白玉

首先來看第一個decode函式,這個函式起基本語法是

decode(條件,值1,返回值1,值2,返回值2,...值n,返回值n,預設值);

並不能比較大小

這裡可以在引入一個函式sign,sign是取數字符號的(select (-10) from dual;返回的是-1)

小於零返回-1,等於0返回0,大於0返回1

我們可以修改下你這個語句為:

select ename 姓名,

decode(sign(sal-3000),1,(sal*0.2),0,(sal*0.2),-1,

decode(sign(sal-2000),1,(sal*0.15),0,(sal*0.15),-1,

decode(sign(sal-1000),1,(sal*0.1),0,(sal*0.1),-1,0)))應繳稅款

from emp;

再看第二個,這裡要用case搜尋函式

select ename 姓名,

case

when sal<1000 then 0

when sal>=1000 and sal<2000 then sal*0.1

when sal>=2000 and sal<3000 then sal*0.15

else sal*0.2

end 應交稅款

from emp;

關於oracle資料庫匯出問題,錯誤如下.

3樓:匿名使用者

樓主的問題我也遇到過,沒有解決,網上有解決方法,都是很麻煩,exp匯出最好是同版本的,不然就會報錯,或者你可以做一個dblink,直接連線到目標資料庫,將表匯入到現有資料庫。

4樓:

貼出你執行的命令 低版本的exp/imp可以連線到高版本(或同版本)的資料庫伺服器,但高版本的exp/imp不能連線到低版本的資料庫伺服器。

5樓:匿名使用者

版本不同吧,換成10g的試試

6樓:匿名使用者

改用10g的客戶端去導

sql資料庫和oracle資料庫string型別欄位用orderby排序分別是根據什麼排序的啊

首先說明下oracle中沒有string型別,而是varchar型別。order by 的順序是assic 讀作 阿斯科馬 碼錶中 字元 列進行排序的。解釋 一般會根據字串的首字母 大些字母 小寫字母 特殊字元 數字。如果首位相同繼續排列第二位,直到不同的位。sql資料和oracle資料庫都沒有st...

Oracle資料庫如何匯出

資料匯出具體如下 將資料庫test完全匯出,使用者名稱system 密碼manager 匯出到d daochu.dmp中。將資料庫中system使用者與sys使用者的表匯出。將資料庫中的表table1 table2匯出。將資料庫中的表table1中的欄位filed1以 00 打頭的資料匯出。將d d...

oracle資料庫和資料庫的關係是什麼?下面是問題

oracle資料庫,分為兩個部分 1 軟體部分。這部分你說的沒錯,確實是一個應用軟體。就好象你的word一樣,word本身是一個應用程式。2 資料庫部分,資料庫是用軟體建立的,按照一定規則儲存和處理資料的載體。再舉例就好象你的word文擋。你的word文擋是利用word建立的。這裡的資料庫確實是利用...