CONST
CREATE OR REPLACE PACKAGE CONST
--
-- 定数
--
-- プラットフォームによる違いをなるべくこのPACKAGEで吸収しておきたい。
--
-- history
-- 1999/05/01 v1.0
-- 2018/08/04 v1.1 ちょと追加
--
IS
-- DIRECTORY SEPARATOR -- ネーミングがこれで良いかは各自の判断に委ねる
FUNCTION DIRECTORY_SEPARATOR RETURN VARCHAR2 ;
-- TAB タブ
FUNCTION TAB RETURN VARCHAR2 ;
-- 改行 New Line
FUNCTION NL RETURN VARCHAR2 ;
-- CR
FUNCTION CR RETURN VARCHAR2 ;
-- LF
FUNCTION LF RETURN VARCHAR2 ;
FUNCTION MKDIR RETURN VARCHAR2 ; -- mkdir
FUNCTION TAIL RETURN VARCHAR2 ; -- mkdir tail
-- OK/NG
FUNCTION OK RETURN VARCHAR2 ; -- OK
FUNCTION NG RETURN VARCHAR2 ; -- NG
END CONST ;
/
SHOW ERROR PACKAGE CONST
CREATE OR REPLACE PACKAGE BODY CONST
IS
-- DIRECTORY SEPARATOR
FUNCTION DIRECTORY_SEPARATOR RETURN VARCHAR2 IS
BEGIN
-- RETURN('/') ; -- UNIX, Linux
RETURN('\') ; -- Windows
END DIRECTORY_SEPARATOR ;
-- タブ
FUNCTION TAB RETURN VARCHAR2 IS
BEGIN
RETURN(chr(9)) ;
END TAB ;
-- New Line
FUNCTION NL RETURN VARCHAR2 IS -- New Line
BEGIN
-- RETURN(chr(10)) ; -- UNIX, Linux
RETURN(chr(13) || chr(10)) ; -- Windows
END NL ;
-- CR
FUNCTION CR RETURN VARCHAR2 IS -- CR
BEGIN
RETURN(chr(13)) ;
END CR ;
-- LF
FUNCTION LF RETURN VARCHAR2 IS -- LF
BEGIN
RETURN(chr(10)) ;
END LF ;
FUNCTION MKDIR RETURN VARCHAR2 IS -- mkdir
BEGIN
-- RETURN('mkdir -p ') ; -- UNIX/Linux 既にディレクトリが存在していてもOK
RETURN('mkdir ') ; -- Windows
END MKDIR ;
FUNCTION TAIL RETURN VARCHAR2 IS -- mkdir tail
BEGIN
-- RETURN(NULL) ; -- UNIX/Linuxではパラメータなし
RETURN(' > NUL 2>&1') ; -- Windows
END TAIL ;
-- OK/NG
FUNCTION OK RETURN VARCHAR2 IS -- OK
BEGIN
RETURN('OK') ;
END OK ;
FUNCTION NG RETURN VARCHAR2 IS -- NG
BEGIN
RETURN('NG') ;
END NG ;
END CONST ;
/
SHOW ERROR PACKAGE BODY CONST
-- ↓PUBLIC SYNONYM に
CREATE OR REPLACE PUBLIC SYNONYM CONST FOR CONST ;
-- ↓実行権をPUBLICにし、インスタンスの全スキーマから実行可能に
GRANT EXECUTE ON CONST TO PUBLIC ;
実行例
COLUMN ANS FORMAT A10
SELECT CONST.DIRECTORY_SEPARATOR
|| CONST.TAB || 'X'
|| CONST.LF || 'X' AS ANS
FROM DUAL ;
ANS
----------
\ X
X