como hago???
Hola a todos, tengo una forma 9i que llama a un reporte 9i tamibien y la sentencia es la siguiente:
WEB.SHOW_DOCUMENT('http://INFRAESTRUC9:8888/reports/rwservlet?destype=cache&desformat=HTMLCSS&report=\serverrcireportREPCARNETP.rdf&userid=SAF/SAF@INEA');
el problema es que quiero que esta forma corra en varias maquinas y si lo instalo en otra maquina no me corre el reporte porque tiene este codigo duro referente al nombre del equipo, mi pregunta es como hago para que el nombre del equipo lo lea directamente de alguna variable? o algo por el estilo.
gracias de antemano saludos desde Venezuela.
WEB.SHOW_DOCUMENT('http://INFRAESTRUC9:8888/reports/rwservlet?destype=cache&desformat=HTMLCSS&report=\serverrcireportREPCARNETP.rdf&userid=SAF/SAF@INEA');
el problema es que quiero que esta forma corra en varias maquinas y si lo instalo en otra maquina no me corre el reporte porque tiene este codigo duro referente al nombre del equipo, mi pregunta es como hago para que el nombre del equipo lo lea directamente de alguna variable? o algo por el estilo.
gracias de antemano saludos desde Venezuela.
Lo puedes parametrizar desde una tabla y sacar los valores con una SELECT
Claro pero como hago para que sepa en cual maquina esta corriendo actualmente la forma, si creo una tabla y meto los nombres de los 5 equipos en la tabla como seria el select:
select nombre_maquina from maquina
where nombre_maquina = :system.current_machine (algo asi)
para que coloque el nombre de la maquina donde yo lo necesito pero como se llama esa variable con la que tengo que comparar la estoy buscando en la ayuda y no la encuentro.
gracias
select nombre_maquina from maquina
where nombre_maquina = :system.current_machine (algo asi)
para que coloque el nombre de la maquina donde yo lo necesito pero como se llama esa variable con la que tengo que comparar la estoy buscando en la ayuda y no la encuentro.
gracias
Utiliza esto :
SELECT SYS_CONTEXT('USERENV','OS_USER') "USUARIO DE RED",
SYS_CONTEXT('USERENV','SESSION_USER') "USUARIO DE BBDD",
SYS_CONTEXT('USERENV','TERMINAL') "MAQUINA"
FROM DUAL;
Esta select te dá el usuario de red, el de base de datos y la maquina desde la que haces la select, con lo cual puedes poner esto en la WHERE:
WHERE NOMBRE_MAQUINA = SYS_CONTEXT('USERENV','TERMINAL')
SELECT SYS_CONTEXT('USERENV','OS_USER') "USUARIO DE RED",
SYS_CONTEXT('USERENV','SESSION_USER') "USUARIO DE BBDD",
SYS_CONTEXT('USERENV','TERMINAL') "MAQUINA"
FROM DUAL;
Esta select te dá el usuario de red, el de base de datos y la maquina desde la que haces la select, con lo cual puedes poner esto en la WHERE:
WHERE NOMBRE_MAQUINA = SYS_CONTEXT('USERENV','TERMINAL')
Gracias era exactamente lo que necesitaba, claro solo la parte del terminal.
Lo unico es que no entiendo esa sintaxis, pense que si le quitaba SYS_CONTEXT y dejaba solo TERMINAL me traia igual la maquina pero no, que significa o que hace ese SYS_CONTEXT y para que es el USERENV.
Gracias de otra vez,
Saludos desde Venezuela.
SELECT SYS_CONTEXT('USERENV','TERMINAL') "MAQUINA"
FROM DUAL;
Lo unico es que no entiendo esa sintaxis, pense que si le quitaba SYS_CONTEXT y dejaba solo TERMINAL me traia igual la maquina pero no, que significa o que hace ese SYS_CONTEXT y para que es el USERENV.
Gracias de otra vez,
Saludos desde Venezuela.
SELECT SYS_CONTEXT('USERENV','TERMINAL') "MAQUINA"
FROM DUAL;
