常用的 PL/SQL 函數備忘,以免日後要用到的時候要再花時間查。
後續有常用的 SQL 函數的話會再補充。
ABS(數值) :取絕對值
CIEL(數值) :無條件進位
FLOOR(數值) :無條件捨去
MOD(數值1,數值2) :取餘數
POWER(數值1,數值2) :次方
ROUND(數值,小數位) :四捨五入
SIGN(數值) :判斷正負值,正 = 1 ,負 = -1,零 = 0
SQRT(數值) :平方根
LPAD(字串,長度,字元) :向左補字元
RPAD(字串,長度,字元) :向右補字元
LTRIM(字串,字元) :去除最左邊的連續字元或空白
RTRIM(字串,字元) :去除最右邊的連續字元或空白
LOWER(字串) :轉小寫
UPPER(字串) :轉大寫
REPLACE(字串1,字串2,字串3) :取代字串1裡面有內容是字串2,改為字串3
SUBSTR(字串,開始,第幾個) :取字串的部份內容
INSTR(字串1,字串2) :找出字串1裡面有字串2的第一次出現位置
GREATEST(數值1,數值2) :取二數的最大值,有時候還蠻好用的
LEAST(數值1,數值2) :取二數的最小值,有時候還蠻好用的
2012年11月7日
2012年11月6日
常用的 Genero 指令備忘
一些常用的 Genero 函數和指令備忘,避免找的時候又花了不少的時間。
Genero 函數:
ARG_VAL(數值) :呼叫其他程式時的參數值:參數1、參數2…
NUM_ARGS( ) :回傳總共有多少個參數
ARR_CURR() :目前畫面單身所選擇第 n 筆資料。
ARR_COUNT() :目前畫面單身的全部筆數。
SCR_LINE() :目前在畫面的第幾行,但資料超過單身的資料量要小心,
改用 ARR_CURR() 會比較好
SET_COUNT(數值) :設定有多少的陣列要顯示或是輸入
DOWNSHIFT(字串) :字串轉為小寫字母
UPSHIFT( 字串) :字串轉為大寫字母
FGL_LASTKEY() :最近的鍵盤輸入鍵值的 ASCII 值
FGL_KEYVAL(字元) :字元改為 ASCII
GET_FLDBUF(欄位名) :抓取 CONSTRUCT 所輸入的欄位內容
FIELD_TOUCHED(欄位名): 改變了畫面中的欄位時就回傳 TRUE
INFIELD(欄位名) :在指定的欄位時,回傳 TRUE
FGL_GETENV(字串) :環境變數值,用在判斷是 GUI 介面或是 EasyFlow 的環境
FGL_DRAWBOX(高, 寬, 線粗細, 邊距, [顏色] ) :畫方框,(測試是沒有效果?)
顏色:0-白,1-黃,2-黃,3-紅,4-青,5-綠,6-藍,7-黑
Genero 指令:
LENGTH(字串) :回傳字串的長度值
ASCII + 空白 + 數字 :將 ASCII 轉換為字元
ORD(字元) :將字元轉換為 ASCII
CURRENT :回傳目前的系統日期 + 時間 + 毫秒,例:2012-11-06 12:00:00 500
DATE :回傳目前的系統日期 (月 日 年) ,例: NOV 6 2012
TODAY :回傳目前的系統日期 (年 / 月 / 日),例: 12/11/06
TIME :回傳目前的系統時間
WEEKDAY(日期) :回傳是星期幾,星期日是 0
YEAR(日期): 回傳年度
MONTH(日期): 回傳月份
DAY(日期): 回傳月的第幾天
MDY(月,日,年) :回傳所指定的日期格式
MOD :二數相除取餘數
** : A 的 B 次方
LSTR(字串或數值) :不知道作用,不過數字可以靠左對齊
SFMT(字串,參數…) :將字串的參數內容,依參數值替換其位置,
範例:DISPLAY SFMT("One = %1, Two = %2.",1,2)
EXTEND( ) :將日期的格式轉換為完整日期+時間格式,
範例:DISPLAY EXTEND ( TODAY, YEAR TO FRACTION(4) )
UNITS :將日期的格式做運算,範例: DISPLAY TODAY + (1 UNITS MONTH)
但是如果是 10/31 要加一個月,會顯示成空白,
提供 YEAR、MONTH、DAY、HOUR、MINUTE、SECOND 參數配合使用
USING :格式化數值欄位,例: DISPLAY 1000 USING '#,##&.&&'
# 有數字才顯示,不然空白
& 有數字顯示,無數字顯示 0
* 有數字顯示,無數字顯示 *
< 有數字顯示,無數字為 NULL
- 有數字顯示,正數為空白,負數顯示 -
+ 有數字顯示,正數為 +,負數顯示 -
$ 有數字顯示,靠右第一個顯示 $ ,其餘向左空白
( ) 有數字顯示,負數才顯示 (數值)
CLIPPED :去除字串結尾空白,開頭的空白是不去除的
SPACES :空幾格,例: DISPLAY 10 SPACES
SQLERRMESSAGE :顯示資料庫的 SQL 執行的訊息,正確顯示 NULL
SQLSTATE :顯示 SQL 執行的訊息,正確顯示 NULL
字串和數值的處理: + 加,- 減,* 乘,/ 除
(逗號) 字串連接 (數字會前方補空白),|| 字串連接 (數字沒有空白)
字串連接:, (逗號) 數字會有空白 或 || (Pipe) 數字不會有空白
算數運算:+-*/ 就不多說了
邏輯判斷:AND、OR、NOT 也不多說了
其他配合 OUTPUT 列印的指令就不再多加介紹:
PAGENO
LINENO
WORKWARP
COLUMN
詳細的內容請參考 4js 的網站
Genero 函數:
ARG_VAL(數值) :呼叫其他程式時的參數值:參數1、參數2…
NUM_ARGS( ) :回傳總共有多少個參數
ARR_CURR() :目前畫面單身所選擇第 n 筆資料。
ARR_COUNT() :目前畫面單身的全部筆數。
SCR_LINE() :目前在畫面的第幾行,但資料超過單身的資料量要小心,
改用 ARR_CURR() 會比較好
SET_COUNT(數值) :設定有多少的陣列要顯示或是輸入
DOWNSHIFT(字串) :字串轉為小寫字母
UPSHIFT( 字串) :字串轉為大寫字母
FGL_LASTKEY() :最近的鍵盤輸入鍵值的 ASCII 值
FGL_KEYVAL(字元) :字元改為 ASCII
GET_FLDBUF(欄位名) :抓取 CONSTRUCT 所輸入的欄位內容
FIELD_TOUCHED(欄位名): 改變了畫面中的欄位時就回傳 TRUE
INFIELD(欄位名) :在指定的欄位時,回傳 TRUE
FGL_GETENV(字串) :環境變數值,用在判斷是 GUI 介面或是 EasyFlow 的環境
FGL_DRAWBOX(高, 寬, 線粗細, 邊距, [顏色] ) :畫方框,(測試是沒有效果?)
顏色:0-白,1-黃,2-黃,3-紅,4-青,5-綠,6-藍,7-黑
Genero 指令:
LENGTH(字串) :回傳字串的長度值
ASCII + 空白 + 數字 :將 ASCII 轉換為字元
ORD(字元) :將字元轉換為 ASCII
CURRENT :回傳目前的系統日期 + 時間 + 毫秒,例:2012-11-06 12:00:00 500
DATE :回傳目前的系統日期 (月 日 年) ,例: NOV 6 2012
TODAY :回傳目前的系統日期 (年 / 月 / 日),例: 12/11/06
TIME :回傳目前的系統時間
WEEKDAY(日期) :回傳是星期幾,星期日是 0
YEAR(日期): 回傳年度
MONTH(日期): 回傳月份
DAY(日期): 回傳月的第幾天
MDY(月,日,年) :回傳所指定的日期格式
MOD :二數相除取餘數
** : A 的 B 次方
LSTR(字串或數值) :不知道作用,不過數字可以靠左對齊
SFMT(字串,參數…) :將字串的參數內容,依參數值替換其位置,
範例:DISPLAY SFMT("One = %1, Two = %2.",1,2)
EXTEND( ) :將日期的格式轉換為完整日期+時間格式,
範例:DISPLAY EXTEND ( TODAY, YEAR TO FRACTION(4) )
UNITS :將日期的格式做運算,範例: DISPLAY TODAY + (1 UNITS MONTH)
但是如果是 10/31 要加一個月,會顯示成空白,
提供 YEAR、MONTH、DAY、HOUR、MINUTE、SECOND 參數配合使用
USING :格式化數值欄位,例: DISPLAY 1000 USING '#,##&.&&'
# 有數字才顯示,不然空白
& 有數字顯示,無數字顯示 0
* 有數字顯示,無數字顯示 *
< 有數字顯示,無數字為 NULL
- 有數字顯示,正數為空白,負數顯示 -
+ 有數字顯示,正數為 +,負數顯示 -
$ 有數字顯示,靠右第一個顯示 $ ,其餘向左空白
( ) 有數字顯示,負數才顯示 (數值)
CLIPPED :去除字串結尾空白,開頭的空白是不去除的
SPACES :空幾格,例: DISPLAY 10 SPACES
SQLERRMESSAGE :顯示資料庫的 SQL 執行的訊息,正確顯示 NULL
SQLSTATE :顯示 SQL 執行的訊息,正確顯示 NULL
字串和數值的處理: + 加,- 減,* 乘,/ 除
(逗號) 字串連接 (數字會前方補空白),|| 字串連接 (數字沒有空白)
字串連接:, (逗號) 數字會有空白 或 || (Pipe) 數字不會有空白
算數運算:+-*/ 就不多說了
邏輯判斷:AND、OR、NOT 也不多說了
其他配合 OUTPUT 列印的指令就不再多加介紹:
PAGENO
LINENO
WORKWARP
COLUMN
詳細的內容請參考 4js 的網站
訂閱:
意見 (Atom)