2013-10-03 2 views
1

У меня есть функция PostgreSQL, которая принимает одну строку как параметр/это динамический SQL-запрос/и выполняет этот динамический SQL, и я ожидаю результат от динамического запроса.Внутренняя функция PostgreSQL-dynamic sql?

Похоже, что в PostgreSQL я должен предопределить, что я вернусь, - но это невозможно, так как я уверен, выполнение динамического оператора и иногда я вернусь один столбец INT, иногда я вернусь 5 VARCHAR столбцов ....

Другое дело в том, что существующий код JDBC будет вызывать функцию и я не могу изменить, я не могу определить типы динамически, как:

{call execute_dynamic(?) as (a varchar(255),b int)}; 

The code that will call the procedure is: 

{call execute_dynamic(?)} 

и не могут быть изменены ....

есть способ реализовать это?

ответ

1

Решение заключается в использовании refcursor в качестве возвращаемого типа.

OPEN ref_cursor FOR EXECUTE dynamic_sql; 
return ref_cursor; 
Смежные вопросы