PIXNET Logo登入

oracle園地

跳到主文

這裡是到處搜括來的ORACLE技術及文章,也有自己發表的文章,希望大家可以互相討論! PS-若有侵權,請告知哦.

部落格全站分類:職場甘苦

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 12月 17 週三 200816:47
  • D2K FORM 讀存檔

讀檔

PROCEDURE echo_file_contents IS
in_file Text_IO.File_Type;
linebuf VARCHAR2(1800);
filename VARCHAR2(30);
BEGIN
filename:=GET_FILE_NAME(’c:\temp\’, File_Filter=>’Text Files (*.txt)|*.txt|’);
in_file := Text_IO.Fopen(filename, ‘r’);
LOOP
Text_IO.Get_Line(in_file, linebuf);
:text_item5:=:text_item5||linebuf||chr(10);
END LOOP;
EXCEPTION
WHEN no_data_found THEN
Text_IO.Put_Line(’Closing the file…’);
Text_IO.Fclose(in_file);
END;

存檔


DECLARE
out_file Text_IO.File_Type;
output_patch VARCHAR2(30);
BEGIN
output_patch:=’c:\temp\test.xls’;
out_file := Text_IO.Fopen (output_patch, ‘w’);
Text_IO.Put(’new line’);
Text_IO.New_Line(out_file, 1);
EXCEPTION
WHEN OTHERS THEN
Text_IO.Fclose(out_file);
END;

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(7) 人氣(5,719)

  • 個人分類:Oracle Form
▲top
  • 12月 17 週三 200816:42
  • PL/SQL CASE敘述(轉)

 

1.搜查型CASE敘述




(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(7,721)

  • 個人分類:Oracle PL/SQL
▲top
  • 12月 17 週三 200816:41
  • PL/SQL陣列用法

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(6,968)

  • 個人分類:Oracle PL/SQL
▲top
  • 12月 17 週三 200816:38
  • ORACLE PL/SQL 常用轉換函數(轉)

to_char(d[,fmt[,'nlsparams']])
–◎ 轉換日期欄位資料成自定格式文字
–◎ 當沒有輸入fmt時,將使用預定的日期格式轉換
–◎ ‘nlsparams’是用來決定月份與日期的縮寫格式,語法為’NLS_DATE_LANGUAGE = language’

ex1.
select sysdate, to_char(sysdate,’Month DD,YYYY HH:MI:SS’) aa from dual;

SYSDATE AA
———- ————————–
27-SEP-07 September 27,2007 11:40:07

–◎ 轉換數字欄位資料成自定格式文字串
–◎ ‘nlsparams’可用來定義下列數字格式
— 1. 小數點(.)
— 2. 每三位為一單位的區隔符號(,)
— 3. 區域性的幣值符號(NT)
— 4. 國際發行的幣值符號($)
— 設定方式;
— ‘NLS_NUMBERIC_CHARACTERS = “dg”
— NLS_CURRENCY = “text”
— NLS_ISO_CURRENCY = territory’

ex2.
select to_char(-10000,’L99G999D99MI’) aa from dual;

AA
—————
NT$10,000.00-

select to_char(-10000,’L99G999D99MI’,
‘NLS_NUMERIC_CHARACTERS=., NLS_CURRENCY=AUD’) aa from dual;

–◎ L99:Currency
–◎ G999:Group
–◎ D99:小數點
–◎ MI:負號

to_date(char[,fmt])
— 根據fmt的格式將char或varchar2的資料型態轉成date的資料型態

ex.
select sysdate, to_date(’20070808′,’YYYYMMDD’) aa from dual;

SYSDATE AA
———- ———-
21-SEP-07 08-AUG-07

to_number(char,[,fmt[,'nlsparams']])
–將數字格式的文字,轉換成數字

ex.
select to_number(’NT$10,000.00′,’L99G999D99′) aa from dual;
AA
———-
10000

select to_number(’1000′)+10 aa from dual;
AA
———-
1010

 

Oracle資料庫Date資料型態的使用

如果只要存入日期,可以利用內建函數
TRUNC(date)
來消去,時、分、秒的資料。

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(23,185)

  • 個人分類:Oracle PL/SQL
▲top
  • 12月 17 週三 200816:37
  • PL/SQL EXCEPTION(轉)

常用的exception 名稱
DUP_VAL_ON_INDEX key值重複
OTHERS 所有的例外
NO_DATA_FOUND 查詢找不到資料
TOO_MANY_ROWS
VALUE_ERROR

自訂EXCEPTION 用法

DECLARE
is_someting_error EXCIPTION;
BEGIN
xxxx;
……..;
BEGIN
xxx
EXCEPTION WHEN OTHERS THEN
RAISE is_someting_error;
END;
EXCEPTION
WHEN is_someting_error THEN
xxxxx;
………;
WHEN OTHERS THEN
xxxxx;
………;
END;

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(6,842)

  • 個人分類:Oracle PL/SQL
▲top
  • 12月 17 週三 200816:34
  • PL/SQL 常用轉換函數 (轉)

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(2) 人氣(37,749)

  • 個人分類:Oracle PL/SQL
▲top
  • 12月 17 週三 200816:33
  • PL/SQL 語言簡介

  1. 數學運算元

    +, -, *, /, **

  2. 關係運算元

    <>, !=, ^=, >, <, =

  3. 其他符號

    (), ;,‘, :=, ||, –, /*

  4. 變數

    a.字首一定要為字母
    b.只能用 $, # 或 _ 等特殊符號
    c.變數不能超過 30 個字
    d.變數裡不能有空白

  5. 保留字

    LOOP, WHILE…

  6. 常用資料型別

    a.VCRCHAR2(max_length)
    max_length: 1 ~ 32767
    b.NUMBER(precision, scale)
    precision: 1 ~ 38
    ex. num NUMBER(10, 2)
    表 num 這個變數有 8 整數, 2 位小數
    c.DATE
    d.BOOLEAN

  7. 程式結構

    a.區塊結構
    DECLARE
    /PROCEDURE procedure_name(w_char IN OUT VARCHAR2,…) IS
    /FUNCTION function_name(w_char IN OUT VARCHAR2,…) RETURN Boolean IS
    … ( 宣告區塊 )
    BEGIN
    …
    EXCEPTION
    … ( 例外區塊 )
    END;
    b.宣告區塊
    (1)固定型態
    w_variable NUMBER(1);
    (2)變動型態 ( Complier 時決定 )
    w_variable table.field%TYPE;
    rec_variable table%ROWTYPE;

    (3)自訂型態
    TYPE record_type IS RECORD
    ( user_default_field_name1 NUMBER(1)
    user_default_field_name1 table.field%TYPE,
    …
    );
    record_name record_type;

  8. 控制結構

    (1)IF 邏輯結構
    * IF – THEN – END IF
    * IF – THEN – ELSE – END IF
    * IF – THEN – ELSIF – END IF
    * 空結構
    (2)迴圈
    * LOOP迴圈
    LOOP
    EXIT WHEN ;
    END LOOP;
    * WHILE迴圈
    WHIEL LOOP

    EXIT WHEN ;
    END LOOP;
    * FOR迴圈
    FOR variable IN min_num .. max_num LOOP
    EXIT WHEN ;
    END LOOP;

  9. 例外處理

    錯誤發生時會進入此區塊處理
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    …
    WHEN OTHERS THEN
    …
    END;
    (1)系統預設
    (2)NO_DATA_FOUND
    TOO_MANY_ROWS
    DUP_VAL_ON_INDEX
    VALUE_ERROR
    (3)自行宣告
    user_default_exception EXCEPTION;

  10. CURSOR敘述

    DECLARE
    CURSOR cursor_name IS
    SELECT …
    rec_cursor_record cursor_name%ROWTYPE;
    BEGIN
    …
    OPEN cursor_name;
    LOOP
    FETCH cursor_name INTO rec_cursor_record;
    EXIT WHEN cursor_name%NOTFOUND;
    END LOOP;
    CLOSE cursor_name;
    …
    END;
    * CURSOR 宣告技巧
    * CURSOR 參數
    %NOTFOUND
    %FOUND
    %ROWCOUNT
    %ISOPEN
    * 動態 CURSOR
    DECLARE
    TYPE type_name IS REF CURSOR RETURN record_type;
    cursor_name type_name;
    record_name type_name;
    BEGIN
    OPEN cursor_name FOR
    SELECT …
    END;

  11. PL/SQL table

    * 結構
    DECLARE
    TYPE trec_chart IS RECORD
    (chart_no chart.chart_no%TYPE,
    pt_name chart.pt_name%TYPE );
    TYPE ttab_chart IS TABLE OF trec_chart%ROWTYPE INDEX BY BINARY_INTEGER;
    tab_chart ttab_chart;
    BEGIN
    …
    END;
    * 用法
    tab_chart(index).chart_no := 1; ( i 可為不連續的整數 )
    tab_chart.EXISTS(index)
    tab_chart.COUNT
    tab_chart.FIRST
    tab_chart.LAST
    tab_chart.PRIOR(index)
    tab_chart.NEXT(index)
    tab_chart.DELETE
    tab_chart.DELETE(index)
    tab_chart.DELETE(start_ index, end_ index)

    index := tab_chart.FIRST;
    WHILE index IS NOT NULL LOOP
    …
    index := tab_chart.NEXT(i);
    END LOOP;
    * EXCEPTION 狀況
    IF tab_chart.chart_no(index) THEN
    此敘述若 tab_chart.chart_no(index) 不存在則會觸發 NO_DATA_FOUND

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(11,211)

  • 個人分類:Oracle PL/SQL
▲top
  • 10月 31 週五 200812:41
  • 2008ITF台北國際旅展串連貼紙

ITF2008

旅展省錢大作戰 部落格徵文串連活動
活動時間:2008年10月13日起至11月10日止

 

 

只要在你自己的部落格上掛上2008ITF台北國際旅展串連貼紙,
並於底下留言版留言,即可參與抽獎喔。
串聯貼紙語法:http://blog.liontravel.com/event/2008itf/default.aspx

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(70)

  • 個人分類:
▲top
  • 10月 17 週五 200816:32
  • PL/SQL 建議的副檔名

副檔名 檔案內容
—————————————–
fun 函數
pro 程序
pkg 套裝程式的規格和主体
pks 只包含套裝程式規格
pkb 只包含套裝程式主体
tab 建立表格用的命令檔
ind 建立索引用的命令檔
cns 限制條件敘述
ins 安裝用命令檔
tst 測試用命令檔
ddl 通用的DDL命令檔〔修改、捨棄…〕
grt 針對物件的授權(grant)敘述
rev 針對物件的撤消(revoke)敘述
syn 建立同義字敘述

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(1,053)

  • 個人分類:Oracle PL/SQL
▲top
  • 9月 17 週三 200813:57
  • 取SQL substr&instr分割字串欄位語法

(繼續閱讀...)
文章標籤

oracleD2K 發表在 痞客邦 留言(0) 人氣(10,684)

  • 個人分類:Oracle SQL
▲top
«1...4569»

部落格文章搜尋

近期文章

    文章彙整

    文章分類

    toggle Oracle Tools (3)
    • Oracle Form (108)
    • Oracle Trigger (30)
    • Oracle 工具安裝 (12)
    toggle Oracle SQL (3)
    • Oracle SQL (96)
    • Oracle PL/SQL (90)
    • ORACLE DBA 指令 (18)
    toggle 教學影音檔 (1)
    • 教學影音檔 (72)
    toggle ORACLE ERP (8)
    • 財務模組 (6)
    • 製造模組 (12)
    • 庫存模組 (12)
    • 業務模組 (12)
    • 專業知識 (12)
    • 其它常用表結構 (6)
    • 採購模組 (12)
    • 工具下載 (6)
    • ORACLE INV (6)
    • 其它應用 (6)
    • 未分類文章 (1)

    誰來我家

    參觀人氣

    • 本日人氣:
    • 累積人氣:

    姓名學