REPORT z_barry_test NO STANDARD PAGE HEADING .
DATA: str1(128),str2(128),str3(128).
***
str2 = '20080109'.
EXEC SQL.
* SELECT to_char(to_date('20080109','yyyymmdd'),'ww') from dual into :str1
SELECT to_char(to_date(:str2,'yyyymmdd'),'ww') from dual into :str1
ENDEXEC.
WRITE / str1.
***
str2 = '123,456.78'.
EXEC SQL.
* select to_number('$123,456.78','$999,999,999,999.99') from dual into :str1
select to_number(:str2,'999,999,999,999.99') from dual into :str1
ENDEXEC.
WRITE / str1.
***
str2 = 'B'.
EXEC SQL.
* select ascii('A') from dual into :char
select ascii(:str2) from dual into :str1
ENDEXEC.
WRITE / str1.
***
EXEC SQL.
select rawtohex(sys_guid()) from dual into :str1
ENDEXEC.
WRITE / str1.
***
str2 = '65'.str3 = '66'.
EXEC SQL.
* select CHR(65)||CHR(66) from dual into :str1
select CHR(:str2)||CHR(:str3) from dual into :str1
ENDEXEC.
WRITE / str1.
***
str2 = '20090507 23:19:20'.
EXEC SQL.
* select to_char(sysdate-10,'YYYYMMDD HH24:MI:SS') from dual into :str1
select to_char(to_date(:str2,'yyyymmdd hh24:mi:ss')-10,'YYYYMMDD HH24:MI:SS') from dual into :str1
ENDEXEC.
WRITE / str1.
***
EXEC SQL.
select user from dual into :str1
ENDEXEC.
WRITE / str1.
***随机数
EXEC SQL.
select dbms_random.value(0,100) from dual into :str1
ENDEXEC.
WRITE / str1.
***随机字母
EXEC SQL.
SELECT DBMS_RANDOM.STRING('A', 20) FROM DUAL into :str1
ENDEXEC.
WRITE / str1.
附:TO_DATE格式(以时间:2007-11-02 13:45:25为例)
Year:
yy two digits 两位年 显示值:07
yyy three digits 三位年 显示值:007
yyyy four digits 四位年 显示值:2007
Month:
mm number 两位月 显示值:11
mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov
month spelled out 字符集表示 显示值:11月,若是英文版,显示november
Day:
dd number 当月第几天 显示值:02
ddd number 当年第几天 显示值:02
dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri
day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday
ddspth spelled out, ordinal twelfth
Hour:
hh two digits 12小时进制 显示值:01
hh24 two digits 24小时进制 显示值:13
Minute:
mi two digits 60进制 显示值:45
Second:
ss two digits 60进制 显示值:25
其它
Q digit 季度 显示值:4
WW digit 当年第几周 显示值:44
W digit 当月第几周 显示值:1