我无法使用JDBC从Java代码获取存储过程的主体。
我应该使用哪种方法来解决这个问题?
我使用以下代码找到了所有存储过程的元数据:
ResultSet resultSet1 = databaseMetaData.getProcedures(connection.getCatalog(), "public", resultSet.getString(3));
但是我想将整个存储过程主体放在String
中。
答案 0 :(得分:1)
要获取SP主体的String值,应执行以下SQL:
SELECT pg_get_functiondef((
SELECT oid
FROM pg_proc
WHERE pronamespace = 'public'::regnamespace
AND proname = 'your_proc_name'
));
并将结果写入String。
答案 1 :(得分:0)
如果您不介意直接查询数据库,请尝试
SELECT proname, prosrc
FROM pg_proc
WHERE pronamespace = 'public'::regnamespace