vincular vinculado usuario una sobre servidores servidor permisos linked entre datos dar crear consulta sql stored-procedures db2 database-connection ibm-midrange

sql - vinculado - En un procedimiento, conéctese a 2 bases de datos: una local y la otra remota



dar permisos a un usuario sobre una base de datos sql (2)

Intento escribir un procedimiento almacenado, en DB2 para AS400, que ejecuta una consulta en la base de datos local (la misma donde se almacena el procedimiento, se llama DBLocale ) y otra en una base de datos remota (llamémoslo DBRemoto ). En iSeries Navigator puedo ver que ambos seleccionan el nodo "Base de datos".

Intenté algo con CONNECT TO DBRemoto; y / o SET CONNECTION DBRemoto; , pero obtuve resultados extraños: "la conexión ya existe", "la conexión no existe", "instrucción CALL completada" (pero no se han definido los resultados), etc.

Esto sería lo que espero hacer:

CREATE PROCEDURE MYLIB.TEST_CONNECT_INSIDE_PROCEDURE DYNAMIC RESULT SETS 1 LANGUAGE SQL READS SQL DATA BEGIN DECLARE sql_string VARCHAR(1024) DEFAULT ''''; DECLARE locale INT DEFAULT -1; DECLARE remoto INT DEFAULT -1; DECLARE cur CURSOR FOR stmt; DECLARE curOut CURSOR FOR select locale, remoto from SYSIBM.SYSDUMMY1; -- run the same query in both DBs; I checked, results must be different SET sql_string = ''select count(*) as QTY from MYLIB.MYTABLE''; -- run locally CONNECT TO DBLocale; --it''s one of my attempts PREPARE stmt FROM sql_string; OPEN cur; FETCH cur INTO locale; CLOSE cur; -- run remotely CONNECT TO DBRemoto; --it''s one of my attempts PREPARE stmt FROM sql_string; OPEN cur; FETCH cur INTO remoto; CLOSE cur; -- output results OPEN curOut; SET RESULT SETS CURSOR curOut; END;

Lo llamo con

call MYLIB.TEST_CONNECT_INSIDE_PROCEDURE()

¿Puede alguien decirme si es posible y aclarar cómo funciona, por favor? Si no es posible en un procedimiento, ¿hay alguna solución? ¡Muchas gracias!


En IBM i, debe incluir los parámetros de usuario y contraseña para las bases de datos remotas.

CONNECT TO DBRemoto USER QUAGMEIER USING ''GIGIDY''

La contraseña debe estar en mayúsculas y, al menos, en un RPG incrustado, debe estar en una variable de host.


En IBM i 7.1, Technical Refresh 4 permite la conexión a múltiples bases de datos y nombres de tres partes. Esto significa que una referencia de tabla (o vista) puede adoptar la forma dbname.schema.table , siempre que dbname sea ​​una entrada en el Directorio de bases de datos relacionales.