У меня есть Oracle Oracle Query, который использует dblink,
SELECT * FROM SSP2_PCAT.PRODUCT_TYPES WHERE ( PRODUCT_TYPE) IN
(SELECT PRODUCT_TYPE FROM SSP2_PCAT.PRODUCT_TYPES
MINUS
SELECT PRODUCT_TYPE FROM SSP2_PCAT.PRODUCT_TYPES@FPORDDEV);
Теперь я преобразовал его в Postgres, используя dblink следующим образом,
SELECT * FROM SSP2_PCAT.PRODUCT_TYPES WHERE (PRODUCT_TYPE) IN
(SELECT PRODUCT_TYPE FROM SSP2_PCAT.PRODUCT_TYPES
EXCEPT
SELECT * from dblink
('dbname=NTE5OFF port=5432 host=xxxxx
user=yyyyy password=zzzzz','SELECT PRODUCT_TYPE FROM
SSP2_PCAT.PRODUCT_TYPES')
as t (PRODUCT_TYPE character varying(60)) );
Теперь это работает абсолютноОтлично!
Теперь, как я могу преобразовать приведенный ниже SQL sql с виртуальным столбцом, как показано ниже,
SELECT 'ITO' FRM, SALES_CD, SALES_CODE_DESC, ACTIVE_IND
FROM SSP2_PCAT.ACCT_LVL_SALES_CDS
EXCEPT
SELECT 'ITO' FRM, SALES_CD, SALES_CODE_DESC, ACTIVE_IND
FROM SSP2_PCAT.ACCT_LVL_SALES_CDS@FPORDDEV;
Я попробовал код в Postgres следующим образом, но, очевидно, выдает ошибкувиртуальная колонка,
SELECT 'ITO' FRM, SALES_CD, SALES_CODE_DESC, ACTIVE_IND FROM
SSP2_PCAT.ACCT_LVL_SALES_CDS
EXCEPT
SELECT * FROM dblink
('dbname=NTE5OFF port=5432 host=xxxxx
user=yyyyy password=zzzzz',
'SELECT FRM, SALES_CD, SALES_CODE_DESC, ACTIVE_IND FROM
SSP2_PCAT.ACCT_LVL_SALES_CDS')
as t ( FRM varchar,
sales_cd character varying(15),
sales_code_desc character varying(150),
active_ind character varying(3) ) );
Может кто-нибудь, пожалуйста, дайте мне знать, если я что-то здесь упускаю?