2015年5月27日

[ORACLE] UPDATE時 撘配EXISTS關鍵字

有時UPDATE時 會用到子查詢


update member
set  unit =(select unit from member_sync
where member.oid = member_sync.oid
and member.unit <>member_sync.unit)


腦中覺得  這樣下 就是update member裡的unit 和member_sync 有同樣oid 但unit不同的資料們

but~~~~

這樣下完  會整張member的unit都被update了 而且欄位還都變成null..........



google後 看到 http://www.techonthenet.com/oracle/update.php
寫說要加上"EXISTS"

You may wish to update records in one table based on values in another table. Since you can't list more than one table in the Oracle UPDATE statement, you can use the Oracle EXISTS clause.


所以寫法就變成
update member
set  unit =(select unit from member_sync
where member.oid = member_sync.oid
and member.unit <>member_sync.unit)

WHERE EXISTS (select unit from member_sync
where member.oid = member_sync.oid
and member.unit <>member_sync.unit)


原因在http://blog.xuite.net/twoli1102/work/65466674-Update%E8%AA%9E%E5%8F%A5%E5%84%AA%E5%8C%96
裡提到
Update語句的原理是先根據where條件查到資料後,如果set中有子查詢,則執行子查詢把值查出來賦給更新的欄位,執行更新。

 如:
update 表a set a.欄位1 = (select b.欄位1 from 表b where a.欄位2=b.欄位2) where exists(select 1 from 表b where a.欄位2=b.欄位2)。

查表a的所有資料,迴圈每條資料,驗證該條資料是否符合exists(select 1 from 表b where a.欄位2=b.欄位2)條件,如果是則執行(select b.欄位1 from 表b where a.欄位2=b.欄位2)查詢,查到對應的值更新a.欄位1中。
關聯表更新時一定要有exists(select 1 from 表b where a.欄位2=b.欄位2)這樣的條件,否則將表a的其他資料的欄位1更新為null值。




2015年5月8日

[日文] 點餐 (2015 05.08更新)

リゾット →燉飯(Risotto)

ボルシチ→羅宋湯(ウクライナ語: борщ, [ボールシュチュ]; 意訳:「紅汁」)(Borscht)

カルボナーラ→培根蛋奶麵 (Carbonara)

マカロニ→通心粉(英語:macaroni)

ラザニア→千層麵(単数形: lasagna、複数形: lasagne、ラザニエ)

ジェノベーゼ→青醬(ペスト・ジェノヴェーゼ)

スンドゥブチゲ→韓式豆腐鍋

ロース→里肌肉,肉質比較肥嫩多筋

ひれかつ→腰內肉,肉質比較乾酥(瘦)少筋




網路ATM 安裝鬼打牆

使用網路ATM 會一直跳出下載安裝元件

但~~我明都裝了元件 還一直跳出來要下載安裝

解法 :chrome://flags/#enable-npapi

選啟用

2015年5月6日

ORA-00911:字元無效

sql直接貼在sqldeveloper 不會出錯
但在程式跑 就是一直出現

有很大原因是因為sql裡有分號

網路上大部份解決是把多句的select 後面的分號拿掉就好


but 他會換ORA-00933: SQL 命令未正確結束.........或是其他奇奇怪怪


解法:在前後加上begin和end就好了


begin
update member set code='123';
update vip set sn='223';
end;

2015年4月16日

HTML5+CSS3上課筆記- CSS選擇器

型態選擇器 Type selectors <h1> <h2> ...<div> <p>
ID選擇氣 ID selectors 使用「#」宣告 一個id在同一個網頁只能出現一次
類別選擇器 Class selectors 使用「.」宣告,一個class可以在一個網頁出現多次
通用選擇器 Universal selector 使用「*」,*{ }所有元素套用括號內的樣式
群組選擇器 Groups of selectors 不用元素擁有同樣的屬性時可以群組設定
後代選擇器 Descendant combinator 一個元素之下的所有選擇器為後代選擇器
子選擇器 Child combinator 當b元素在a元素下一層時,則b元素為a元素的子選擇器,但若中間有其他元素插入 則只是後代選擇器
同層相鄰選擇器 Adjacent sibling combinator 有同一個父親的兩個元素以「+」為連結,選擇某個特定元素之後的第一個特定元素
同層全體選擇器 General sibling combinator 有同一個父親的兩個元素以「~」為連結,選擇某個特定元素的同一層元素
偽類選擇器 Pseudo-classes 一個元素的特殊狀態,ex滑鼠移至元素上的狀態設定 或一個元素中本來就存在的元素,ex第一個子元素、最後一個子元素
偽元素選擇器 Pseudo-elements 被用於指定某個元素的某部分樣式,ex某個樣式的第一個字母、第一行、或其元素之前 之後插入內容
屬性選擇器 Attribute selectors 可以為擁有指定屬性的HTML元素設定樣式,不僅限於類別和ID屬性

2015年3月30日

[ORACLE] 查看oracle版本

select * from v$version 

select * from product_component_version