添加数据库自定义函数记录
This commit is contained in:
parent
40adaba2c2
commit
11357fd74e
49
Oracle自定义函数.sql
Normal file
49
Oracle自定义函数.sql
Normal file
@ -0,0 +1,49 @@
|
||||
-- 查询自定义函数的源代码
|
||||
SELECT
|
||||
text
|
||||
FROM
|
||||
user_source
|
||||
WHERE
|
||||
name = '函数名(全大写,如:HOS_GET_SORTABLE_REF)'
|
||||
AND type = 'FUNCTION'
|
||||
ORDER BY
|
||||
line;
|
||||
|
||||
-- 定义函数
|
||||
FUNCTION hos_get_sortable_ref(
|
||||
bh IN VARCHAR2,
|
||||
len IN NUMBER DEFAULT 4
|
||||
) RETURN VARCHAR2 IS v_res VARCHAR2(999);
|
||||
|
||||
BEGIN
|
||||
SELECT
|
||||
LISTAGG(str || num, '') WITHIN GROUP (
|
||||
ORDER BY
|
||||
lev
|
||||
) INTO v_res
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
REGEXP_SUBSTR(ele, '\D*', 1) AS str,
|
||||
LPAD(REGEXP_SUBSTR(ele, '\d+', 1), len, '0') AS num,
|
||||
lev
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
REGEXP_SUBSTR(bh, '\D*\d+', 1, LEVEL) AS ele,
|
||||
LEVEL AS lev
|
||||
FROM
|
||||
dual CONNECT BY REGEXP_SUBSTR(bh, '\D*\d+', 1, LEVEL) IS NOT NULL
|
||||
)
|
||||
);
|
||||
|
||||
RETURN v_res;
|
||||
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN RETURN NULL;
|
||||
|
||||
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
|
||||
|
||||
RETURN NULL;
|
||||
|
||||
END hos_get_sortable_ref;
|
Loading…
x
Reference in New Issue
Block a user