Можно ли вызвать из Oracle через dblink функцию в PostgreSQL

SergeyNZ
Дата: 24.02.2015 10:23:04
Здравствуйте
Создал в Oracle dblink к PostgreSQL. Select к таблицам выполняются.
Написал в PostgreSQL функцию
CREATE OR REPLACE FUNCTION paybase_schema.test123 (v_input integer) RETURNS smallint AS
$body$
DECLARE
BEGIN
  return v_input;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;

Попробовал вызвать ее в Oracle через dblink
select "paybase_schema"."test123"@pgsql(1) from dual

получаю ошибку ORA-00904: "paybase_schema"."test123": недопустимый идентификатор

Почему?

Oracle 11.2.0.3 PostgreSQL 9.3
Warstone
Дата: 24.02.2015 11:43:04
SergeyNZ,

Не знаю как в Оракле, но в Пг DBLink принимает строку. Если в Оракле так-же, то надо следовать стандартам SQL. Никаких @pgsql и dual:
SELECT paybase_schema.test123(1);
SergeyNZ
Дата: 24.02.2015 12:03:39
SELECT paybase_schema.test123(1);

Это у меня в PostgreSQL тоже работает
В Oracle нельзя написать SELECT не указав FROM
этта
Дата: 24.02.2015 17:36:14
SergeyNZ
SELECT paybase_schema.test123(1);

Это у меня в PostgreSQL тоже работает
В Oracle нельзя написать SELECT не указав FROM

но и вызов pipline функций в оракл другой, через

SELECT .... FROM {from_list}
,table(function_name(params({from_list})


а какой, если это ещё и dblink--ф-я -- я уже и забыл. такошто вопросы к ораклу.


PS там, внутре в оракле, есть другая неонка другой пакет (не dblink), который позволяет запросы в синтаксисе именно вызываемой БД. Полазайте по ора --форуму, я там встречал.
этта
Дата: 24.02.2015 17:47:51
SergeyNZ,

проглядел, у вас пока не pipline. (setof).
но вспомнил ещё : -- в самом оракле можно пытаться порулить стороной исполнения распределённого запроса с помощью хинта /*+DRIVING_SITE(alias)*/ [гарантий нет]
SergeyNZ
Дата: 24.02.2015 18:13:06