如果中華電信有調整市內電話的費率,通常不會大肆宣傳,
但是官網的公告一定會有訊息。
例如104年1月6日有修正過費率,公告網址如下:
http://www.cht.com.tw/personal/related/basic-calls-rate-0.html
因為市話依不同的方案類型,有3分、5分或10分為一單位,未滿一單位,仍以一單位計算。
例如市話的基本型A,其3分鐘的通信費率是1.6 元,假設這次我打一次通話5分鐘的電話,
則為2個單位,所以這次的電話費為2x1.6=3.2元。
如上相同的情境,基本型B是5分鐘1.6元,所以一次打5分鐘的通話費用就是1.6元
也因為如此,所以我們打電話的習慣(通話的長短)會影響到電話費,
在公告的最下面,有一個試算的方法,只要填入每月大致的總通話分鐘數,
及一般時段、減價時段的比例,每次通話是否超過3分鐘的比例,
就可以幫忙試算出哪一種費率適合你。
例如我預估每月的總通話量約為100分鐘,通常都在星期日打電話,每次通話大多在2分鐘。
所以試算的結果如下:
如欲變更費率方案,有3種方式:
1、使用電話直撥 1200後,它是語音,依照導引,自行設定選定的費率。
2、使用市內電話直撥 123後,由客服人員協助變更。
3、網路申請,網址:http://123.cht.com.tw/, 選擇「更改市內電話費率」
ODBC驅動程式管理員指定之DSN中的驅動程式和應用程式架構不相符
因為同事使用SSIS連線後端Informix資料庫時,出現了這個錯誤:
「ODBC驅動程式管理員 指定之DSN中的驅動程式和應用程式架構不相符」
後來在經Google大神提點後,得知應該是後端Informix是32位元資料庫,
而同事的Win7是64位元,以64位元的ODBC驅動程式連接就會出現錯誤,
所以必須改用32bit ODBC,但是如果從「控制台」中開啟ODBC管理員,
其新增的ODBC驅動程式會是64位元,必須開啟32位元的ODBC管理員。
32位元的ODBC管理員路徑如下:
C:\Windows\SysWOW64\odbcad32.exe
完成32位元ODBC驅動程式之後,SSIS卻還是出現了相同錯誤,
這次是SSIS本身設定的問題,SSIS預設會以64位元驅動程式執行,
就算資料來源設定為32位元的驅動程式也一樣。
只要把「專案」-->「屬性」-->「偵錯」-->「Run64BitRuntion」
由True改為False就可以了,這次再度執行程式就成功。
「ODBC驅動程式管理員 指定之DSN中的驅動程式和應用程式架構不相符」
後來在經Google大神提點後,得知應該是後端Informix是32位元資料庫,
而同事的Win7是64位元,以64位元的ODBC驅動程式連接就會出現錯誤,
所以必須改用32bit ODBC,但是如果從「控制台」中開啟ODBC管理員,
其新增的ODBC驅動程式會是64位元,必須開啟32位元的ODBC管理員。
32位元的ODBC管理員路徑如下:
C:\Windows\SysWOW64\odbcad32.exe
完成32位元ODBC驅動程式之後,SSIS卻還是出現了相同錯誤,
這次是SSIS本身設定的問題,SSIS預設會以64位元驅動程式執行,
就算資料來源設定為32位元的驅動程式也一樣。
只要把「專案」-->「屬性」-->「偵錯」-->「Run64BitRuntion」
由True改為False就可以了,這次再度執行程式就成功。
ADB連線到ASUS ME70CX(Win7 x64)
過年前在拍賣網上買了一台ASUS ME70CX,規格一般,但是支援GPS,
新機價格只有2000元,電池續航力也還不錯。
這台Android的版本是4.4.2,預設是看不到「開發人員選項」,
要啟用「開發人員選項」只要在「版本號碼」上連按7次就可以了。
路徑:設定 --> 關於 --> 軟體資訊 --> 版本號碼
進入「開發人員選項」,就可以啟用「USB 偵錯模式」。
到此ME70CX的設定就結束了,接下來才是麻煩的開始。
把ME70CX以USB線接到電腦後,想當然會找不到MTP的驅動程式,
而且ASUS也沒有驅動程式,找了好久終於下載到驅動程式。
檔案名稱:ASUS_ME70CX_drivers.zip
解壓密碼:無
載點:http://1drv.ms/1FrbCyW
我的作業系統是Win7 x64版本,以ADB實際測試ok
新機價格只有2000元,電池續航力也還不錯。
這台Android的版本是4.4.2,預設是看不到「開發人員選項」,
要啟用「開發人員選項」只要在「版本號碼」上連按7次就可以了。
路徑:設定 --> 關於 --> 軟體資訊 --> 版本號碼
進入「開發人員選項」,就可以啟用「USB 偵錯模式」。
到此ME70CX的設定就結束了,接下來才是麻煩的開始。
把ME70CX以USB線接到電腦後,想當然會找不到MTP的驅動程式,
而且ASUS也沒有驅動程式,找了好久終於下載到驅動程式。
檔案名稱:ASUS_ME70CX_drivers.zip
解壓密碼:無
載點:http://1drv.ms/1FrbCyW
我的作業系統是Win7 x64版本,以ADB實際測試ok
春節遊奇美博物館2015/2/21
大年初三,第三次到奇美博物館參觀,不過今天還有親友跟著一起進館,入館時間11:45,
初三這天的人與車非常地多,整個交通動線回堵很長,幸好我是騎機車,停車格還有很多,
但是親友開車找停車位就找了很久,還有因為高速公路上塞車而無法趕到的另一位親友。
換票入館之後,動物廳果真是小孩的天堂,親友的小孩在這裡待最久,一離開動物廳,
就開始興趣缺缺了,於是參觀整館的三分之一就先離開了,而我有借導覽機,而且只有我一人,
當然不會放過這個機會,自己留下來慢慢欣賞,有了導覽機的介紹,對展品能有更好的認識。
雖然不是所有的展品都能用導覽機解說(展品太多了),不過只要展品有號碼的都可以使用。
導覽機一台的租金是100元,沒有限制使用時間、次數與人數,可以自行調整音量,
個人導覽機的租借地點在票匣的右前面,靠近紀念品商店的樓梯下,售票處的隔壁是團體租借,
租借的同時也會有專人教導使用,很簡單,不用30秒就上手了。
三樓有一間提琴的專門展區,這是我第一次進去,前兩次只有經過而都沒有進去過,
裡面有十多把18世紀的名琴及一個製琴的工具間,有些琴的背板還刻有圖紋,琴頭也有造型,
不過這只是許文龍一千四百多把的一部份,不知道以後是不是會更換其他的琴。
這時候導覽機又發揮了另一個功能,就是可以試聽部份名琴的演奏,每把琴發出的聲音都有不同。
一樓的廁所與電梯處還有水鳥與陸鳥的展示,三樓的廁所與電梯處則有銀器與鐘擺的展示,
這四處的展區位置比較奇怪,所以上次來訪時也未能盡數參觀,可是這幾處的展品也是很不錯的。
一樓的兵器廳在中間的出入口處(兵器廳探索區),還有三頂不同型狀的鐵甲頭盔可以試載,
作用其實就跟現代軍人載的鋼盔一樣,用來保護頭部。旁邊還有磁性拼圖,可以把全身盔甲拼起來。
在館內走累了、餓了可以先離開,只要在出口處蓋手章及保留門票,就可以再進館參觀,
如果不想離開館內,也可以往一樓的側門走出去,到戶外的雕塑水景庭園,
這裡有賣一些小點心及飲料,還有桌子、椅子可以坐,也可以吃東西,還有一些雕塑可以欣賞拍照。
一眨眼就快要兩點了,兩點有一個特殊的表演,在樂器廳的自動樂器表演區放有12座大小不一,
功能不同且年代已超過90年、100年的自動演奏樂器,比黑膠唱片還要古老。
自動樂器的發明主要是因為當時人們想要聽音樂就只能花錢請樂團或自己學習演奏,
可是這不是一般人能夠負擔的起,所以就發明自動樂器,讓大眾都能享受音樂。
一天有五場表演,時間是10:30、11:30、14:00、15:00、16:00,因為自動樂器都已經超過90歲,
所以一場只聽的到三座的自動樂器演奏,也就是每一座自動樂器一天最多只能演奏兩次,
因為難得,所以我聽了兩場14:00、15:00,建議有機會一定要聽看看。
其中有一座以紙捲操控,沒錯,就是打有許多長短不一孔洞的紙捲,每個孔洞就是一個的音符,
可同時且自動演奏鋼琴、排笛、木琴、鼓、曼陀林、三角鐵、響板及鳥鳴聲等樂器,
有如一組小型樂團,真的很有趣,而且鋼琴演奏時琴鍵還會自己按下,宛如恐怖片。
下面是奇美博物館的一個介紹自動演奏樂器的youtobe短片,可以先聽看看:
出館之後,我走到博物館的側面拍照,也是很漂亮的。
初三這天的人與車非常地多,整個交通動線回堵很長,幸好我是騎機車,停車格還有很多,
但是親友開車找停車位就找了很久,還有因為高速公路上塞車而無法趕到的另一位親友。
換票入館之後,動物廳果真是小孩的天堂,親友的小孩在這裡待最久,一離開動物廳,
就開始興趣缺缺了,於是參觀整館的三分之一就先離開了,而我有借導覽機,而且只有我一人,
當然不會放過這個機會,自己留下來慢慢欣賞,有了導覽機的介紹,對展品能有更好的認識。
雖然不是所有的展品都能用導覽機解說(展品太多了),不過只要展品有號碼的都可以使用。
導覽機一台的租金是100元,沒有限制使用時間、次數與人數,可以自行調整音量,
個人導覽機的租借地點在票匣的右前面,靠近紀念品商店的樓梯下,售票處的隔壁是團體租借,
租借的同時也會有專人教導使用,很簡單,不用30秒就上手了。
三樓有一間提琴的專門展區,這是我第一次進去,前兩次只有經過而都沒有進去過,
裡面有十多把18世紀的名琴及一個製琴的工具間,有些琴的背板還刻有圖紋,琴頭也有造型,
不過這只是許文龍一千四百多把的一部份,不知道以後是不是會更換其他的琴。
這時候導覽機又發揮了另一個功能,就是可以試聽部份名琴的演奏,每把琴發出的聲音都有不同。
一樓的廁所與電梯處還有水鳥與陸鳥的展示,三樓的廁所與電梯處則有銀器與鐘擺的展示,
這四處的展區位置比較奇怪,所以上次來訪時也未能盡數參觀,可是這幾處的展品也是很不錯的。
一樓的兵器廳在中間的出入口處(兵器廳探索區),還有三頂不同型狀的鐵甲頭盔可以試載,
作用其實就跟現代軍人載的鋼盔一樣,用來保護頭部。旁邊還有磁性拼圖,可以把全身盔甲拼起來。
在館內走累了、餓了可以先離開,只要在出口處蓋手章及保留門票,就可以再進館參觀,
如果不想離開館內,也可以往一樓的側門走出去,到戶外的雕塑水景庭園,
這裡有賣一些小點心及飲料,還有桌子、椅子可以坐,也可以吃東西,還有一些雕塑可以欣賞拍照。
一眨眼就快要兩點了,兩點有一個特殊的表演,在樂器廳的自動樂器表演區放有12座大小不一,
功能不同且年代已超過90年、100年的自動演奏樂器,比黑膠唱片還要古老。
自動樂器的發明主要是因為當時人們想要聽音樂就只能花錢請樂團或自己學習演奏,
可是這不是一般人能夠負擔的起,所以就發明自動樂器,讓大眾都能享受音樂。
一天有五場表演,時間是10:30、11:30、14:00、15:00、16:00,因為自動樂器都已經超過90歲,
所以一場只聽的到三座的自動樂器演奏,也就是每一座自動樂器一天最多只能演奏兩次,
因為難得,所以我聽了兩場14:00、15:00,建議有機會一定要聽看看。
其中有一座以紙捲操控,沒錯,就是打有許多長短不一孔洞的紙捲,每個孔洞就是一個的音符,
可同時且自動演奏鋼琴、排笛、木琴、鼓、曼陀林、三角鐵、響板及鳥鳴聲等樂器,
有如一組小型樂團,真的很有趣,而且鋼琴演奏時琴鍵還會自己按下,宛如恐怖片。
下面是奇美博物館的一個介紹自動演奏樂器的youtobe短片,可以先聽看看:
出館之後,我走到博物館的側面拍照,也是很漂亮的。
看門狗(Watch Dogs)v1.01修改器x64版(Win8.1)
今天重新把「看門狗」這個遊戲拿出來玩,但是我的技術一樣很「肉腳」,
老是被敵人打死,所以把修改器拿出來用,沒想到居然失效了。
應該是我的作業系統有昇級過,現在是Win 8.1 64bit。
我到網上找到其他的修改器也大多失敗或沒有反應,
不過幸好最後找到一個有特別支援64bit的修改器,Win8.1測試的結果是OK。
載點如下(微軟的OneDrive):
http://1drv.ms/1w58aVu
檔名:ALI213-Watch.Dogs.v1.01.24tr.lingon_x64_win8.1.rar
密碼:無
使用說明:
1、解壓文件
2、啟動修改器執行檔
3、啟動且開始遊戲
修改器說明:
進入遊戲後,首先按下鍵盤的「Home」鍵來啟動修改器
F1 無限生命
F2 無限集中
F3 無限電池
F4 無限彈藥
F5 無需裝彈
F6 無限金錢
F7 無限技能點
F8 獲得經驗
F9 最大聲望
F10 蜘蛛坦克無限電力
F11 超級速度
END 一擊必殺
in-sert 沒有雷達偵測
DEL 最低檢測等級
END 小遊戲無限時間
UP 人物變大
DOWN 人物變小
CTRL+J 車輛無限生命
CTRL+K HACK無時限
CTRL+L 迷你遊戲時間
CTRL+M 超級速度
Num8 設置位置
Num9 瞬間移動
Num0 取消移動
P 瞬移到標記點
U 取消標記移動
老是被敵人打死,所以把修改器拿出來用,沒想到居然失效了。
應該是我的作業系統有昇級過,現在是Win 8.1 64bit。
我到網上找到其他的修改器也大多失敗或沒有反應,
不過幸好最後找到一個有特別支援64bit的修改器,Win8.1測試的結果是OK。
載點如下(微軟的OneDrive):
http://1drv.ms/1w58aVu
檔名:ALI213-Watch.Dogs.v1.01.24tr.lingon_x64_win8.1.rar
密碼:無
使用說明:
1、解壓文件
2、啟動修改器執行檔
3、啟動且開始遊戲
修改器說明:
進入遊戲後,首先按下鍵盤的「Home」鍵來啟動修改器
F1 無限生命
F2 無限集中
F3 無限電池
F4 無限彈藥
F5 無需裝彈
F6 無限金錢
F7 無限技能點
F8 獲得經驗
F9 最大聲望
F10 蜘蛛坦克無限電力
F11 超級速度
END 一擊必殺
in-sert 沒有雷達偵測
DEL 最低檢測等級
END 小遊戲無限時間
UP 人物變大
DOWN 人物變小
CTRL+J 車輛無限生命
CTRL+K HACK無時限
CTRL+L 迷你遊戲時間
CTRL+M 超級速度
Num8 設置位置
Num9 瞬間移動
Num0 取消移動
P 瞬移到標記點
U 取消標記移動
Google線上春聯數位化
Google為了中國春節製作的線上春聯數位化服務,可以讓我們們己以毛筆筆觸來寫春聯,
還可以分享出來,很好玩,有興趣的人可以到下列的網址去試試看:
網址:https://chinesenewyear.withgoogle.com/?hl=zh-TW
它有瀏覽器的限制,因為使用了HTML5的技術,其實只要不是太舊的系統,都有支援啦。
瀏覽器支援種類與版本:http://caniuse.com/#search=webgl
還可以分享出來,很好玩,有興趣的人可以到下列的網址去試試看:
網址:https://chinesenewyear.withgoogle.com/?hl=zh-TW
它有瀏覽器的限制,因為使用了HTML5的技術,其實只要不是太舊的系統,都有支援啦。
瀏覽器支援種類與版本:http://caniuse.com/#search=webgl
下圖是我自己寫的
如何找出某一個數是2的幾次方
剛好有需要知道一個沒有固定,但是為2的x次方的數y,要如何找出x:
公式:2^x=y,例如:2的3次方為8(2x2x2)
其他的程式語言也都有對數的內定函數,例如:
PHP --> log(32,2)=8
C# --> math.log(32,2)=8
公式:2^x=y,例如:2的3次方為8(2x2x2)
在Excel中,可以用log對數函數來找到答案,如下圖:
其他的程式語言也都有對數的內定函數,例如:
PHP --> log(32,2)=8
C# --> math.log(32,2)=8
jQuery操作CSS3 animation動畫的測試範例
上次利用jQuery來操作canvas的試次還算順利,所以也想用jQuery來操作CSS3 animation。
可是這次就沒有上次那麼幸運了,無論用選擇器或函數,就是無法操作CSS3 animation。
經google大神的幫助,找到一個jQuery的外掛程式:jQuery-Keyframes
下載網址:https://github.com/jQueryKeyframes/jQuery.Keyframes
另外還要下載一個js:prefixfree
下載網址:http://leaverou.github.io/prefixfree/
-------------------
HTML5的測試原始碼
-------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CSS TEST</title>
<style>
.test01 {
width: 200px;
height: 210px;
position:relative;
top: 0px;
left: 0px;
border: 1px solid #999999;
}
</style>
</head>
<body>
<section>
<input id="btn01" type="button" value="TEST"></input>
<div id="jq_test01" class="test01">aaaaaaaaa</div>
</section>
</body>
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="js/jquery.keyframes.js"></script>
<script type="text/javascript" src="js/prefixfree.min.js"></script>
<script>
$(window).load(function(){
$.keyframe.define([{
name: 'test01',
'0%': {'left': '270px'},
'30%': {'left': '10px'},
'60%': {'left': '230px'},
'100%': {'left': '10px'}
}]);
$("#btn01").click(function(){
$("#jq_test01").playKeyframe('test01 2000ms linear ');
});
});
</script>
</html>
可是這次就沒有上次那麼幸運了,無論用選擇器或函數,就是無法操作CSS3 animation。
經google大神的幫助,找到一個jQuery的外掛程式:jQuery-Keyframes
下載網址:https://github.com/jQueryKeyframes/jQuery.Keyframes
另外還要下載一個js:prefixfree
下載網址:http://leaverou.github.io/prefixfree/
-------------------
HTML5的測試原始碼
-------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CSS TEST</title>
<style>
.test01 {
width: 200px;
height: 210px;
position:relative;
top: 0px;
left: 0px;
border: 1px solid #999999;
}
</style>
</head>
<body>
<section>
<input id="btn01" type="button" value="TEST"></input>
<div id="jq_test01" class="test01">aaaaaaaaa</div>
</section>
</body>
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="js/jquery.keyframes.js"></script>
<script type="text/javascript" src="js/prefixfree.min.js"></script>
<script>
$(window).load(function(){
$.keyframe.define([{
name: 'test01',
'0%': {'left': '270px'},
'30%': {'left': '10px'},
'60%': {'left': '230px'},
'100%': {'left': '10px'}
}]);
$("#btn01").click(function(){
$("#jq_test01").playKeyframe('test01 2000ms linear ');
});
});
</script>
</html>
animate.css:一個有數十種特效動畫的CSS3文件
在學習css3的過程中,看到有一個animate.css的說明,有數十種特效動畫可以引用,
所以就下載來試用,果然使用上非常的方便,也可以藉此學習css3的語法。
下載網址有兩個位置,其中一個可以線上觀看特效如下:
http://daneden.github.io/animate.css/
選擇想要的特效,按下旁邊的按鈕就可以由標題知道效果。
這個網址也可以下載,還有英文的使用說明:
https://github.com/daneden/animate.css
使用上先由上面的網址取得animate.css檔案,再於HTML網頁內定義,例:
<head>
<link href="animate.css" rel="stylesheet">
</head>
下面是fadeInDown與lightSpeedIn特效的使用範例:
<P class="animated fadeInDown">This is TESTING.</P>
<P class="animated lightSpeedIn">This is TESTING.</P>
完整的測試原始碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CSS TEST</title>
<link href="animate.css" rel="stylesheet">
</head>
<body>
<section>
<P class="animated fadeInDown">This is TESTING.</P>
<P class="animated lightSpeedIn">This is TESTING.</P>
</section>
</body>
</html>
所以就下載來試用,果然使用上非常的方便,也可以藉此學習css3的語法。
下載網址有兩個位置,其中一個可以線上觀看特效如下:
http://daneden.github.io/animate.css/
選擇想要的特效,按下旁邊的按鈕就可以由標題知道效果。
這個網址也可以下載,還有英文的使用說明:
https://github.com/daneden/animate.css
使用上先由上面的網址取得animate.css檔案,再於HTML網頁內定義,例:
<head>
<link href="animate.css" rel="stylesheet">
</head>
下面是fadeInDown與lightSpeedIn特效的使用範例:
<P class="animated fadeInDown">This is TESTING.</P>
<P class="animated lightSpeedIn">This is TESTING.</P>
完整的測試原始碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CSS TEST</title>
<link href="animate.css" rel="stylesheet">
</head>
<body>
<section>
<P class="animated fadeInDown">This is TESTING.</P>
<P class="animated lightSpeedIn">This is TESTING.</P>
</section>
</body>
</html>
EBS 11i 查詢一年內沒有執行過的客製報表
今天接到一個需求,想要知道有哪些客製報表在一年內沒有執行過。
幸好我們的Purge Concurrent Request and/or Manager Data有設定保留一年,
不然也沒有資料可以比對,所以寫了一個簡易查詢的SQL如下:
(我們的客製報表名稱最前面都是CTS開頭)
select application_id,concurrent_program_id,concurrent_program_name,
last_update_date,creation_date ,user_concurrent_program_name
from FND_CONCURRENT_PROGRAMS_VL fcrv
where concurrent_program_id not in
(select concurrent_program_id
from FND_CONC_REQ_SUMMARY_V
where phase_code='C'
and status_code='C'
and user_concurrent_program_name like 'CTS%'
group by concurrent_program_id,user_concurrent_program_name
having max(request_date) >= (sysdate -365)
and fcrv.concurrent_program_name like 'CTS%' ;
幸好我們的Purge Concurrent Request and/or Manager Data有設定保留一年,
不然也沒有資料可以比對,所以寫了一個簡易查詢的SQL如下:
(我們的客製報表名稱最前面都是CTS開頭)
select application_id,concurrent_program_id,concurrent_program_name,
last_update_date,creation_date ,user_concurrent_program_name
from FND_CONCURRENT_PROGRAMS_VL fcrv
where concurrent_program_id not in
(select concurrent_program_id
from FND_CONC_REQ_SUMMARY_V
where phase_code='C'
and status_code='C'
and user_concurrent_program_name like 'CTS%'
group by concurrent_program_id,user_concurrent_program_name
having max(request_date) >= (sysdate -365)
and fcrv.concurrent_program_name like 'CTS%' ;
EBS 11i 修改User Name及Employee Number
因為要更改ERP登入的帳號名稱,也要改Employee Number,所以寫了一個PL/SQL程式,順便記錄下來。
首先建立一個暫存的表格 tmp_data,只有兩個欄位,分別是a、b,a是舊帳號、b是新帳號
create table tmp_date( a varchar2(50) , b varchar2(50) );
接著把舊帳號、新帳號寫入tmp_data。
最後執行下列的PL/SQL就可以了
declare
cursor c1 is
select a,b from tmp_data where a is not null and b is not null;
r1 c1%rowtype;
check_a number;
check_b number;
begin
for r1 in c1 loop
select count(1) into check_a from fnd_user where user_name=r1.a;
if check_a=1 then
--利用ERP本身的Package來修改帳號
fnd_user_pkg.CHANGE_USER_NAME
( x_old_user_name => r1.a, --舊的User Name
x_new_user_name => r1.b ); --新的User Name
dbms_output.put_line('User Name ,'|| r1.a ||','|| r1.b);
end if;
select count(1) into check_b from per_all_people_f where employee_number=r1.a ;
if check_b=1 then
update per_all_people_f set employee_number=r1.b where employee_number=r1.a ;
dbms_output.put_line('Employee Number , ' || r1.a || ' , ' || r1.b);
end if;
end loop ;
commit;
exception
WHEN OTHERS THEN
ROLLBACK;
commit;
DBMS_OUTPUT.PUT_LINE(SQLERRM);
end ;
首先建立一個暫存的表格 tmp_data,只有兩個欄位,分別是a、b,a是舊帳號、b是新帳號
create table tmp_date( a varchar2(50) , b varchar2(50) );
接著把舊帳號、新帳號寫入tmp_data。
最後執行下列的PL/SQL就可以了
declare
cursor c1 is
select a,b from tmp_data where a is not null and b is not null;
r1 c1%rowtype;
check_a number;
check_b number;
begin
for r1 in c1 loop
select count(1) into check_a from fnd_user where user_name=r1.a;
if check_a=1 then
--利用ERP本身的Package來修改帳號
fnd_user_pkg.CHANGE_USER_NAME
( x_old_user_name => r1.a, --舊的User Name
x_new_user_name => r1.b ); --新的User Name
dbms_output.put_line('User Name ,'|| r1.a ||','|| r1.b);
end if;
select count(1) into check_b from per_all_people_f where employee_number=r1.a ;
if check_b=1 then
update per_all_people_f set employee_number=r1.b where employee_number=r1.a ;
dbms_output.put_line('Employee Number , ' || r1.a || ' , ' || r1.b);
end if;
end loop ;
commit;
exception
WHEN OTHERS THEN
ROLLBACK;
commit;
DBMS_OUTPUT.PUT_LINE(SQLERRM);
end ;
jQuery使用HTML5 Canvas的方法
我使用的jQuery版本是2.1.1、網頁是HTML5,在取得canvas物件時,卻沒有反應。
原來在jQuery取得canvas物件需要有一點「眉角」
Javascript的語法如下:
var canvas = document.getElementById('canvasTEST');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.fillStyle = "#0000FF";
ctx.fillRect(10,50,100,100);
canvas.addEventListener( "mousedown", mouseDown );
function mouseDown() {
ctx.beginPath();
ctx.strokeStyle = "#00FF00";
ctx.lineWidth = 10;
ctx.moveTo(10,10);
ctx.lineTo(50,200);
ctx.stroke();
}
JQuery的語法如下:
var $canvas = $('#canvasTEST');
var ctx = $canvas[0].getContext('2d');
ctx.beginPath();
ctx.fillStyle = "#0000FF";
ctx.fillRect(10,50,100,100);
$canvas.mousedown(function (e) {
ctx.beginPath();
ctx.strokeStyle = "#00FF00";
ctx.lineWidth = 10;
ctx.moveTo(10,10);
ctx.lineTo(50,200);
ctx.stroke();
});
兩者的差異在此:
var ctx = canvas.getContext('2d');
var ctx = $canvas[0].getContext('2d');
網路上有人解釋如下:
Because getContext('2d') works on DOM element,
where var 「$canvas = $('#canvas1');」return a jQuery object but node a DOM element.
And to retrieve a DOM element from jQuery object you need to use $canvas[0].
完整的HTML5語法如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>TESTING</title>
</head>
<body>
<canvas id="canvas1" width="300" height="300" style="border: 2px solid #999900" />
</body>
</html>
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<script>
var $canvas = $('#canvasTEST');
var ctx = $canvas[0].getContext('2d');
ctx.beginPath();
ctx.fillStyle = "#0000FF";
ctx.fillRect(10,50,100,100);
$canvas.mousedown(function (e) {
ctx.beginPath();
ctx.strokeStyle = "#00FF00";
ctx.lineWidth = 10;
ctx.moveTo(10,10);
ctx.lineTo(50,200);
ctx.stroke();
});
</script>
原來在jQuery取得canvas物件需要有一點「眉角」
Javascript的語法如下:
var canvas = document.getElementById('canvasTEST');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.fillStyle = "#0000FF";
ctx.fillRect(10,50,100,100);
canvas.addEventListener( "mousedown", mouseDown );
function mouseDown() {
ctx.beginPath();
ctx.strokeStyle = "#00FF00";
ctx.lineWidth = 10;
ctx.moveTo(10,10);
ctx.lineTo(50,200);
ctx.stroke();
}
JQuery的語法如下:
var $canvas = $('#canvasTEST');
var ctx = $canvas[0].getContext('2d');
ctx.beginPath();
ctx.fillStyle = "#0000FF";
ctx.fillRect(10,50,100,100);
$canvas.mousedown(function (e) {
ctx.beginPath();
ctx.strokeStyle = "#00FF00";
ctx.lineWidth = 10;
ctx.moveTo(10,10);
ctx.lineTo(50,200);
ctx.stroke();
});
兩者的差異在此:
var ctx = canvas.getContext('2d');
var ctx = $canvas[0].getContext('2d');
網路上有人解釋如下:
Because getContext('2d') works on DOM element,
where var 「$canvas = $('#canvas1');」return a jQuery object but node a DOM element.
And to retrieve a DOM element from jQuery object you need to use $canvas[0].
完整的HTML5語法如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>TESTING</title>
</head>
<body>
<canvas id="canvas1" width="300" height="300" style="border: 2px solid #999900" />
</body>
</html>
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<script>
var $canvas = $('#canvasTEST');
var ctx = $canvas[0].getContext('2d');
ctx.beginPath();
ctx.fillStyle = "#0000FF";
ctx.fillRect(10,50,100,100);
$canvas.mousedown(function (e) {
ctx.beginPath();
ctx.strokeStyle = "#00FF00";
ctx.lineWidth = 10;
ctx.moveTo(10,10);
ctx.lineTo(50,200);
ctx.stroke();
});
</script>
利用fnd_user_pkg.updateuser大量停用ERP帳號
DECLARE
cursor c1 is
--user_temp是記錄要停用帳號的表格,只有一個文字欄位a
select a from user_temp
r1 c1%rowtype
BEGIN
for r1 in c1 loop
fnd_user_pkg.updateuser
( x_user_name => r1.a,
x_owner => NULL, --必要的參數
x_end_date => sysdate,
);
end loop;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
cursor c1 is
--user_temp是記錄要停用帳號的表格,只有一個文字欄位a
select a from user_temp
r1 c1%rowtype
BEGIN
for r1 in c1 loop
fnd_user_pkg.updateuser
( x_user_name => r1.a,
x_owner => NULL, --必要的參數
x_end_date => sysdate,
);
end loop;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
利用fnd_user_pkg.delresp的API停用帳號的responsibility
ERP是11i的版本,正好有需要把某個帳號的Responsibility給停用,
雖然只有一個帳號,但是還是找到可以用API來停用,以利未來有大量帳號停用的需要。
----------------------------------------------------------------------------------
DECLARE
v_user_name VARCHAR2 (100) := 'USER01';
v_responsibility_name VARCHAR2 (100) := 'Alert Manager';
v_application_name VARCHAR2 (100) := NULL;
v_responsibility_key VARCHAR2 (100) := NULL;
v_security_group VARCHAR2 (100) := NULL;
BEGIN
SELECT fa.application_short_name,
fr.responsibility_key,
frg.security_group_key
INTO v_application_name,
v_responsibility_key,
v_security_group
FROM fnd_responsibility fr,
fnd_application fa,
fnd_security_groups frg,
fnd_responsibility_tl frt
WHERE fr.application_id = fa.application_id
AND fr.data_group_id = frg.security_group_id
AND fr.responsibility_id = frt.responsibility_id
AND frt.LANGUAGE = USERENV ('LANG')
AND frt.responsibility_name = v_responsibility_name;
fnd_user_pkg.delresp
( username => v_user_name,
resp_app => v_application_name,
resp_key => v_responsibility_key,
security_group => v_security_group
);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line ('Error : ' || SQLERRM );
END;
雖然只有一個帳號,但是還是找到可以用API來停用,以利未來有大量帳號停用的需要。
----------------------------------------------------------------------------------
DECLARE
v_user_name VARCHAR2 (100) := 'USER01';
v_responsibility_name VARCHAR2 (100) := 'Alert Manager';
v_application_name VARCHAR2 (100) := NULL;
v_responsibility_key VARCHAR2 (100) := NULL;
v_security_group VARCHAR2 (100) := NULL;
BEGIN
SELECT fa.application_short_name,
fr.responsibility_key,
frg.security_group_key
INTO v_application_name,
v_responsibility_key,
v_security_group
FROM fnd_responsibility fr,
fnd_application fa,
fnd_security_groups frg,
fnd_responsibility_tl frt
WHERE fr.application_id = fa.application_id
AND fr.data_group_id = frg.security_group_id
AND fr.responsibility_id = frt.responsibility_id
AND frt.LANGUAGE = USERENV ('LANG')
AND frt.responsibility_name = v_responsibility_name;
fnd_user_pkg.delresp
( username => v_user_name,
resp_app => v_application_name,
resp_key => v_responsibility_key,
security_group => v_security_group
);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line ('Error : ' || SQLERRM );
END;
Google Earth Pro(Google地球專業版)現在免費取得授權金鑰
原本Google Earth Pro是要收費的,而且不便宜,一年要399元。
但是現在開放免費,只是Google沒有明確表示有沒有試用期。不過我還是下載來試看看。
下載網址:http://www.google.com/intl/zh-TW/earth/download/gep/agree.html
下載並安裝完成後,必須有授權金鑰才能使用,所以還要到註冊網頁去。
註冊網址:https://geoauth.google.com/gev0/free_trial.html
下圖是註冊成功的訊息,我第一次註冊失敗,但是第二次就成功了。
成功後會發送一封含有授權金鑰的mail到我們註冊時填寫的mail地址
開啟Google Earth Pro後,輸入mail及金鑰就可以使用了,
至於有什麼不同,我也不知道,因為我也沒用過專業版。等有空時再試試。
但是現在開放免費,只是Google沒有明確表示有沒有試用期。不過我還是下載來試看看。
下載網址:http://www.google.com/intl/zh-TW/earth/download/gep/agree.html
下載並安裝完成後,必須有授權金鑰才能使用,所以還要到註冊網頁去。
註冊網址:https://geoauth.google.com/gev0/free_trial.html
成功後會發送一封含有授權金鑰的mail到我們註冊時填寫的mail地址
開啟Google Earth Pro後,輸入mail及金鑰就可以使用了,
至於有什麼不同,我也不知道,因為我也沒用過專業版。等有空時再試試。
Solaris 時間日期格式的一些範例
語法: date +"FORMAT"
注意:「+」與「"FORMAT"」之間不能有空白
日期
$ date +"%Y%m%d"
20150202
日期
$ date +"%Y/%m/%d"
2015/02/02
日期
bash-3.2# date +"%F"
2015-02-02
日期
$ date +"%D"
02/02/15
時間
$ date +"%T"
15:41:04
星期幾(1~7,1是星期一)
$ date +"%u"
1
星期幾(0~6,0是星期天)
bash-3.2# date +"%w"
1
星期幾
$ date +"%A"
Monday
星期幾縮寫
$ date +"%a"
Mon
月份
date +"%m"
02
月份
$ date +"%B"
February
月份縮寫
$ date +"%b"
Feb
日期與時間
$ date +"%c"
Mon Feb 02 15:48:51 2015
每月的幾號
$ date +"%d"
02
每月的幾號,小於10時前面會空一格
bash-3.2# date +"%e"
2
小時,24小時格式
$ date +"%H"
15
小時,12小時格式
$ date +"%I"
03
每年的一月一日到現在的天數
$ date +"%j"
033
分鐘
$ date +"%M"
58
秒
$ date +"%S"
03
時間
$ date +"%T"
16:00:30
今天是一年的第幾週(2月2日)
$ date +"%W"
05
年份
$ date +"%Y"
2015
年份後兩碼
$ date +"%y"
15
注意:「+」與「"FORMAT"」之間不能有空白
日期
$ date +"%Y%m%d"
20150202
日期
$ date +"%Y/%m/%d"
2015/02/02
日期
bash-3.2# date +"%F"
2015-02-02
日期
$ date +"%D"
02/02/15
時間
$ date +"%T"
15:41:04
星期幾(1~7,1是星期一)
$ date +"%u"
1
星期幾(0~6,0是星期天)
bash-3.2# date +"%w"
1
星期幾
$ date +"%A"
Monday
星期幾縮寫
$ date +"%a"
Mon
月份
date +"%m"
02
月份
$ date +"%B"
February
月份縮寫
$ date +"%b"
Feb
日期與時間
$ date +"%c"
Mon Feb 02 15:48:51 2015
每月的幾號
$ date +"%d"
02
每月的幾號,小於10時前面會空一格
bash-3.2# date +"%e"
2
小時,24小時格式
$ date +"%H"
15
小時,12小時格式
$ date +"%I"
03
每年的一月一日到現在的天數
$ date +"%j"
033
分鐘
$ date +"%M"
58
秒
$ date +"%S"
03
時間
$ date +"%T"
16:00:30
今天是一年的第幾週(2月2日)
$ date +"%W"
05
年份
$ date +"%Y"
2015
年份後兩碼
$ date +"%y"
15
PhET 線上互動性模擬教學
網址:https://phet.colorado.edu/zh_TW/
PhET是美國科羅拉多大學物理系所設計的,是一套免費互動教學系統,內容有物理、化學、數學…等。
以動畫或遊戲來解釋一些抽象的物理原理,讓學生可以在沒有教具的情況下模擬科學原理。
網站內全部的模擬教學都是以自由軟體的型態存放,任何人都可以自由取得或儲存,
而且的模擬教學都是有經過測試及評估,以確保可以整合到課堂上的教學。
網頁的繁體中文是由臺灣PhET 社群進行翻譯與維護(感謝他們無私的貢獻)
程式都是以JAVA或Flash製作,有些還支援HTML5,可以直接在瀏覽器上執行,就算是需要下載,
也只要按兩下(JAVA需要事先安裝)就可以執行。
JAVA下載的網址如下,下載後直接按兩下,一直下一步就可以了。
網址:https://java.com/zh_TW/download/
進入PhET首頁之後,往下找到「如何執行教學」,有三個選項可以點選如下圖:
「線上執行」:直接以瀏覽器或由瀏覽器直接啟動JAVA執行
「完整安裝」:可以下載整個網站的內容離線執行,可以在沒有網路的地方執行
「個別執行」:可以單獨下載某個教學程式
點選進去後,在左側可以發現有物理、生物、化學等不同類別,可依喜好或需求來選擇。
下圖範例是其中一個線上執行「Concentration濃度」的模擬教學,「Run in HTML5」就是直接在瀏覽器執行,
但是HTML5有瀏覽器版本的限制,太舊的瀏覽器版本是沒有支援HTML5新技術的。
而「開始」也可以直接開啟由瀏覽器來執行模擬教學,但是我測試的結果在IE下是正常的,還可以直接開啟繁體中文的教學,
但是使用Chrome預設會直接把程式給下載下來,而且還是英文版的教學。
有興趣可以自行點選其他的模擬教學試試
PhET是美國科羅拉多大學物理系所設計的,是一套免費互動教學系統,內容有物理、化學、數學…等。
以動畫或遊戲來解釋一些抽象的物理原理,讓學生可以在沒有教具的情況下模擬科學原理。
網站內全部的模擬教學都是以自由軟體的型態存放,任何人都可以自由取得或儲存,
而且的模擬教學都是有經過測試及評估,以確保可以整合到課堂上的教學。
網頁的繁體中文是由臺灣PhET 社群進行翻譯與維護(感謝他們無私的貢獻)
程式都是以JAVA或Flash製作,有些還支援HTML5,可以直接在瀏覽器上執行,就算是需要下載,
也只要按兩下(JAVA需要事先安裝)就可以執行。
JAVA下載的網址如下,下載後直接按兩下,一直下一步就可以了。
網址:https://java.com/zh_TW/download/
進入PhET首頁之後,往下找到「如何執行教學」,有三個選項可以點選如下圖:
「線上執行」:直接以瀏覽器或由瀏覽器直接啟動JAVA執行
「完整安裝」:可以下載整個網站的內容離線執行,可以在沒有網路的地方執行
「個別執行」:可以單獨下載某個教學程式
點選進去後,在左側可以發現有物理、生物、化學等不同類別,可依喜好或需求來選擇。
下圖範例是其中一個線上執行「Concentration濃度」的模擬教學,「Run in HTML5」就是直接在瀏覽器執行,
但是HTML5有瀏覽器版本的限制,太舊的瀏覽器版本是沒有支援HTML5新技術的。
而「開始」也可以直接開啟由瀏覽器來執行模擬教學,但是我測試的結果在IE下是正常的,還可以直接開啟繁體中文的教學,
但是使用Chrome預設會直接把程式給下載下來,而且還是英文版的教學。
有興趣可以自行點選其他的模擬教學試試
交通安全宣導演講筆記
今天交通大隊警員到公司演講及交通安全宣導,擷取幾點記錄下來,給自己及大家分享。
無論守法或不守法,都可能發生交通事故,但是所謂的交通事故是指在「道路」上發生車與車或車與人的事故。
所以賣場的停車場並不屬於「道路交通事故處理規範」規定的「道路」範圍,所以不屬交通事故,
但是如果車子因擦撞而造成的損害,仍可依民事案件提出告訴。
車禍現場的處理,如果自己還有辦法打電話,就打電話請朋友或保險公司到場協助,找人來不是壯膽吵架,
而是請朋友幫忙拍照或錄影,無論現場環境明亮或昏暗,能拍就拍,拍越多越詳細越好,最多事後再慢慢篩選,
總比什麼都沒有的好,因為有時候責任判斷的依據就在不起眼的地方。
也要請朋友記錄週邊環境(監視器位置、號誌、標線、標誌、目擊者、血跡、碎片等),
避免自己因為慌張或受傷而忽略了許多可以注意的細節。
雖然繪製地上車輪位置,由肇事人或是警察繪製均可,但是建議不要自已畫,因為可能會有爭議,
而且千萬不要移動車輛,因為警察到場後可能會因為現場已有破壞而註記,將來可能會因為這樣而有所爭議。
在馬路當中發生車禍,如果自己還可以移動(無論是用爬的或走的、跳的),儘量把自己移到馬路邊,
因為要保護自己不被後續的車輛二次傷害,你永遠無法知道後面的車子會不會再撞到你。
一、於事故現場得申請提供道路交通事故當事人登記聯單。(一定要跟警員拿,上面會記錄所有相關人的基本資料)
二、於事故七日後得申請閱覽或提供現場圖、現場照片。(如自己有整理資料,可在此時一併提供給承辦警員,如
果在分析研判表完成後才要提供,就需要申請行車事故鑑定。)
三、於事故三十日後得申請提供道路交通事故初步分析研判表。
無論受傷是否嚴重,都應該到醫院驗傷並取得單據。
並非「被撞者」才是「受害人」,交通事故的判定是依證據來識別雙方的路權,所以取得路權的一方比較有利。
而且警員並非直接看到事故的發生,所以只能以照片、位置、影片來判斷,因此證據的保全越齊全就更容易判斷。
肇事原因必須有依據的法源,而不是憑我們自己的認知,例如有一段影片是一台直行的汽車在路口撞到
從機車道直接左轉的機車,機車違規的原因不是未兩段左轉(路口沒有紅綠燈),
而是不在規定車道行駛(車道上有禁行機車),所以路權在汽車。
看完影片後,真的認為不要以為違規不會有事,真的只是幸運而已,而且一旦有發生車禍的話,
無論你是不是被撞、有沒有受傷,在法律上都是比較站不起腳的。
無論守法或不守法,都可能發生交通事故,但是所謂的交通事故是指在「道路」上發生車與車或車與人的事故。
所以賣場的停車場並不屬於「道路交通事故處理規範」規定的「道路」範圍,所以不屬交通事故,
但是如果車子因擦撞而造成的損害,仍可依民事案件提出告訴。
車禍現場的處理,如果自己還有辦法打電話,就打電話請朋友或保險公司到場協助,找人來不是壯膽吵架,
而是請朋友幫忙拍照或錄影,無論現場環境明亮或昏暗,能拍就拍,拍越多越詳細越好,最多事後再慢慢篩選,
總比什麼都沒有的好,因為有時候責任判斷的依據就在不起眼的地方。
也要請朋友記錄週邊環境(監視器位置、號誌、標線、標誌、目擊者、血跡、碎片等),
避免自己因為慌張或受傷而忽略了許多可以注意的細節。
雖然繪製地上車輪位置,由肇事人或是警察繪製均可,但是建議不要自已畫,因為可能會有爭議,
而且千萬不要移動車輛,因為警察到場後可能會因為現場已有破壞而註記,將來可能會因為這樣而有所爭議。
在馬路當中發生車禍,如果自己還可以移動(無論是用爬的或走的、跳的),儘量把自己移到馬路邊,
因為要保護自己不被後續的車輛二次傷害,你永遠無法知道後面的車子會不會再撞到你。
一、於事故現場得申請提供道路交通事故當事人登記聯單。(一定要跟警員拿,上面會記錄所有相關人的基本資料)
二、於事故七日後得申請閱覽或提供現場圖、現場照片。(如自己有整理資料,可在此時一併提供給承辦警員,如
果在分析研判表完成後才要提供,就需要申請行車事故鑑定。)
三、於事故三十日後得申請提供道路交通事故初步分析研判表。
無論受傷是否嚴重,都應該到醫院驗傷並取得單據。
並非「被撞者」才是「受害人」,交通事故的判定是依證據來識別雙方的路權,所以取得路權的一方比較有利。
而且警員並非直接看到事故的發生,所以只能以照片、位置、影片來判斷,因此證據的保全越齊全就更容易判斷。
肇事原因必須有依據的法源,而不是憑我們自己的認知,例如有一段影片是一台直行的汽車在路口撞到
從機車道直接左轉的機車,機車違規的原因不是未兩段左轉(路口沒有紅綠燈),
而是不在規定車道行駛(車道上有禁行機車),所以路權在汽車。
看完影片後,真的認為不要以為違規不會有事,真的只是幸運而已,而且一旦有發生車禍的話,
無論你是不是被撞、有沒有受傷,在法律上都是比較站不起腳的。
訂閱:
文章 (Atom)

-
在電腦版的Line輸入文字時,遇到需要換行的情形時,我都是用記事本先寫好再複製上去,這樣就可以有換行的效果,可是這樣的做法好像失去Line的便利性。 於是查了一下,原來有一個設定可以指定Enter換行,而不是發訊息出去。 完成設定之後,要發送訊息就改用Al...
-
Windows7 / Windows8 kill process Linux下要刪除某個程序通常會使用 ps 配合 kill 來刪除程序。 例如:ps -ef |grep [PROCESS NAME] kill -9 [PID] 在Windows下,通常是...
-
Excel有許多實用的公式,善用這些公式可以達成大部份的功能,但是萬一公式無法滿足需求時,可以自訂公式來解決。 自訂公式其實就是自訂函數,先開啟Visual Basic(VBA) 新增一個「模組」 ...