使用JDBC从PostgreSQL获取存储过程的主体

时间:2019-05-23 08:25:05

标签: postgresql stored-procedures jdbc

我无法使用JDBC从Java代码获取存储过程的主体。

我应该使用哪种方法来解决这个问题?

我使用以下代码找到了所有存储过程的元数据:

ResultSet resultSet1 = databaseMetaData.getProcedures(connection.getCatalog(), "public", resultSet.getString(3));

但是我想将整个存储过程主体放在String中。

2 个答案:

答案 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