MySQL、Oracle、DM、PG 、SQL Server、DB2查询Function结构的SQL

72 阅读1分钟

MySQL

SELECT *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'FUNCTION'
  AND ROUTINE_SCHEMA = 'tc_dsm'
  AND ROUTINE_NAME = 'get_full_name';

Oracle

SELECT DBMS_METADATA.GET_DDL('FUNCTION', 'GET_FULL_NAME', 'TEST') AS BODY
FROM DUAL;

DM

SELECT DBMS_METADATA.GET_DDL('FUNCTION', 'GET_FULL_NAME', 'SYSDBA') AS BODY
FROM DUAL;

PG

SELECT pg_get_functiondef(oid) AS BODY
FROM pg_proc
WHERE proname = 'get_full_name'
  AND pronamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'public');

SQLServer

SELECT ROUTINE_DEFINITION AS BODY
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'FUNCTION'
  AND ROUTINE_SCHEMA = 'dbo'
  AND ROUTINE_NAME = 'get_full_name';

DB2

SELECT TEXT AS BODY
FROM SYSCAT.ROUTINES
WHERE ROUTINETYPE = 'F'
  AND ROUTINESCHEMA = 'TEST_SCHEMA1'
  AND ROUTINENAME = 'GET_FULL_NAME';