|
在WINDOWS64,ORACLE10204版本上不成功。
CREATE OR REPLACE FUNCTION dl2ml(HY IN VARCHAR)
RETURN VARCHAR
AS
X VARCHAR(2);
BEGIN
SELECT
CASE
WHEN HY >='01' AND HY<= '05' THEN 1
WHEN HY >='06'
AND HY<= '11' THEN 2
WHEN HY >='13' AND HY<= '43' THEN 3
WHEN HY >='44' AND HY<= '46' THEN 4
WHEN HY >='47' AND HY<= '50' THEN
5
WHEN HY >='51' AND HY<= '59' THEN 6
WHEN HY >='60' AND HY<= '62' THEN 7
WHEN HY ='63' OR HY = '65' THEN 8
WHEN HY >='66' AND
HY<= '67' THEN 9
WHEN HY >='68' AND HY<= '71' THEN 10
WHEN HY >='72' AND HY<= '72' THEN 11
WHEN HY >='73' AND HY<= '74' THEN 12
WHEN
HY >='75' AND HY<= '78' THEN 13
WHEN HY >='79' AND HY<= '81' THEN 14
WHEN HY >='82' AND HY<= '83' THEN 15
WHEN HY >='84' AND HY<=
'84' THEN 16
WHEN HY >='85' AND HY<= '87' THEN 17
WHEN HY >='88' AND HY<= '92' THEN 18
WHEN HY >='93' AND HY<= '98' THEN 19
ELSE
NULL
END
INTO X FROM DUAL;
RETURN X;
END;
D:\oracle\product\10.2.0\db_1\BIN>wrap iname=H:\JOB\NC\dl2ml.log oname=H:\JOB\NC\dl2ml.plb
PL/SQL Wrapper: Release 10.2.0.4.0- Production on Wed Feb 03 15:38:26 2010
Copyright (c) 1993, 2004, Oracle. All rights reserved.
Processing H:\JOB\NC\dl2ml.log to H:\JOB\NC\dl2ml.plb
D:\oracle\product\10.2.0\db_1\BIN>
SYS@bi>start H:\JOB\NC\dl2ml.plb
Function created.
Elapsed: 00:00:00.03
SYS@bi>exec unwrap('SYS','DL2ML','FUNCTION');
BEGIN unwrap('SYS','DL2ML','FUNCTION'); END;
*
ERROR at line 1:
ORA-29261: bad argument
ORA-06512: at "SYS.UTL_ENCODE", line 29
ORA-06512: at "SYS.UTL_ENCODE", line 251
ORA-06512: at "SYS.UNWRAP", line 44
ORA-06512: at line 1
Elapsed: 00:00:00.01
何故? |
|