WITH句 の FUNCTION で ズンドコキヨシ(※ワンライナー可)
ズンドコキヨシまとめ http://qiita.com/shunsugai@github/items/971a15461de29563bf90
こないだは30個位だったズンドコキヨシのタグが、100個超えとる……
負けてはいられん!今度は Oracle Database 12cR1 新機能 の
WITH句 の FUNCTION で ズンドコしてみたやで彡(゚)(゚)
2.1.4.11 SQL WITH句に定義されるPL/SQLファンクション http://docs.oracle.com/cd/E57425_01/121/NEWFT/chapter12101.htm#FEATURENO10021
ソースは以下の通り。
WITH FUNCTION fnc_zun_doko(v_zun IN VARCHAR2) RETURN VARCHAR2 IS BEGIN IF SUBSTR(v_zun, -5) = '00001' THEN RETURN REPLACE(REPLACE(v_zun, '0', 'ズン!'), '1', 'ドコ!') || 'キ・ヨ・シ!'; ELSE RETURN fnc_zun_doko(v_zun || MOD(TRUNC(DBMS_RANDOM.VALUE*10), 2)); END IF; END; SELECT fnc_zun_doko(NULL) FROM DUAL; /
結果は以下やで 彡(゚)(゚)
SQL> WITH 2 FUNCTION fnc_zun_doko(v_zun IN VARCHAR2) RETURN VARCHAR2 IS 3 BEGIN 4 IF SUBSTR(v_zun, -5) = '00001' THEN 5 RETURN REPLACE(REPLACE(v_zun, '0', 'ズン!'), '1', 'ドコ!') || 'キ・ヨ・シ!'; 6 ELSE 7 RETURN fnc_zun_doko(v_zun || MOD(TRUNC(DBMS_RANDOM.VALUE*10), 2)); 8 END IF; 9 END; 10 SELECT fnc_zun_doko(NULL) FROM DUAL; 11 / FNC_ZUN_DOKO(NULL) -------------------------------------------------------------------------------- ドコ!ズン!ドコ!ズン!ズン!ドコ!ドコ!ズン!ズン!ドコ!ドコ!ズン!ズン!ド コ!ズン!ズン!ドコ!ズン!ズン!ズン!ドコ!ズン!ドコ!ズン!ドコ!ズン!ドコ !ズン!ドコ!ドコ!ドコ!ズン!ドコ!ドコ!ズン!ズン!ドコ!ドコ!ズン!ドコ! ズン!ズン!ズン!ドコ!ズン!ドコ!ドコ!ドコ!ズン!ズン!ズン!ドコ!ドコ!ズ ン!ドコ!ドコ!ズン!ズン!ドコ!ズン!ドコ!ドコ!ドコ!ズン!ドコ!ドコ!ズン !ドコ!ドコ!ドコ!ドコ!ドコ!ドコ!ズン!ドコ!ドコ!ドコ!ズン!ドコ!ズン! ドコ!ドコ!ズン!ズン!ドコ!ドコ!ドコ!ズン!ズン!ズン!ドコ!ズン!ズン!ド コ!ドコ!ドコ!ズン!ズン!ドコ!ドコ!ズン!ドコ!ドコ!ドコ!ドコ!ズン!ドコ !ズン!ズン!ドコ!ドコ!ズン!ズン!ズン!ドコ!ズン!ズン!ズン!ズン!ズン! ドコ!キ・ヨ・シ!
12c限定やけど、こっちのがスマートやね!彡(^)(^)
Qiita にも書いたやで 彡(゚)(゚)
WITH句 の FUNCTION で ズンドコキヨシ http://qiita.com/ora_gonsuke777/items/3a97308d681b6fb20647
※3/18追記・こいつは(ほぼ)ワンライナーでも行けたやで彡(゚)(゚)
SQL> WITH FUNCTION fnc_zun_doko(v_zun IN VARCHAR2) RETURN VARCHAR2 IS BEGIN IF SUBSTR(v_zun, -5) = '00001' THEN RETURN REPLACE(REPLACE(v_zun, '0', ' ズン!'), '1', 'ドコ!') || 'キ・ヨ・シ!'; ELSE RETURN fnc_zun_doko(v_zun || MOD(TRUNC(DBMS_RANDOM.VALUE*10), 2)); END IF; END; SELECT fnc_zun_doko(NULL) FROM DUAL; 2 / FNC_ZUN_DOKO(NULL) -------------------------------------------------------------------------------- ドコ!ドコ!ズン!ズン!ズン!ドコ!ズン!ズン!ドコ!ドコ!ズン!ズン!ズン!ド コ!ドコ!ズン!ズン!ドコ!ドコ!ドコ!ズン!ズン!ドコ!ズン!ドコ!ズン!ドコ !ドコ!ズン!ズン!ズン!ズン!ズン!ズン!ズン!ズン!ドコ!キ・ヨ・シ!