tag:blogger.com,1999:blog-6230959840389481677.post8928702940581980345..comments2023-08-13T02:31:07.189-07:00Comments on Oracle Notepad: Cómo crear una vista parametrizadalferhttp://www.blogger.com/profile/00618392085702183279noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-6230959840389481677.post-30650348892686279112012-11-08T12:30:15.702-08:002012-11-08T12:30:15.702-08:00Isaias
En un análisis por utilizar este método me...Isaias<br /><br />En un análisis por utilizar este método me pregunto quisiera que alguien me conteste cual es la ventaja en usar una vista con parámetros que hay que actualizar o usar una vista normal que sus parámetros vengan de una tabla y hacerle update a la tabla de parámetros antes de ejecutar la vista?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-34878755375147002102012-06-26T16:54:13.082-07:002012-06-26T16:54:13.082-07:00Muy buen aporte, pero tengo un inconvniente, al pa...Muy buen aporte, pero tengo un inconvniente, al parecer con la versión en la que trabajo (Oracle 10G), no funciona, probablemente sea un bug y se necesite un requisito adicional como un parchado a la base, en otros foros he econtrado que a alguien le dejó de funcionar un procedimiento similar al que explicás, venia de una versión 9i y ahora con la 10g no le funciona.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-19020198776402610132011-06-29T10:24:49.740-07:002011-06-29T10:24:49.740-07:00estoy confundido con la manipulacion del paramtro ...estoy confundido con la manipulacion del paramtro creastes un paquete y no estoy familiarizado con ellos pero bueno yo deseo usar paramtros en la vista pero al llamar la vista te devuelve los resultado segun lo que dejastes en el procedure por lo tanto a eso le llamo como un dato quemado me gustaria hacerlo de forma dinamica view (paramtro) y que me devuelva le resultado segun el parametro que le envio pero en el entorno que me explicas siento que estoy amarrado a lo que ya esta definido en el procedure no se si me doy a explicarEdwin_Mejiahttps://www.blogger.com/profile/11894792162967126090noreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-28497694481061658362011-01-06T07:01:19.797-08:002011-01-06T07:01:19.797-08:00Hola, Muy buen blog.
Tienes idea de como puedo mo...Hola, Muy buen blog.<br /><br />Tienes idea de como puedo modificar el valor del contexto desde .net?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-17845999245177160132010-07-13T13:34:23.471-07:002010-07-13T13:34:23.471-07:00Hola,
Naturalmente, la funcion set es como cualqu...Hola,<br /><br />Naturalmente, la funcion set es como cualquier otra. Dentro de la misma seteas dos veces el contexto una vez para cada parametro. Es eso lo que quieres?<br /><br />Saludoslferhttps://www.blogger.com/profile/00618392085702183279noreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-45917965808703100692010-07-13T13:24:13.136-07:002010-07-13T13:24:13.136-07:00Hola disculpa, me gustaria saber si puedo aplicar ...Hola disculpa, me gustaria saber si puedo aplicar lo del contexto con mas de un parametro de entradaAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-42399794295138716292010-01-09T07:49:54.628-08:002010-01-09T07:49:54.628-08:00Gracias me hice bolas con los nombres de los objet...Gracias me hice bolas con los nombres de los objetos; ya pude crear la vista y funciona bien.<br /><br />Muchas gracias y muy bueno tu aporte.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-85620429988544014662010-01-09T07:49:37.185-08:002010-01-09T07:49:37.185-08:00Hola,
Unicamente puedes alterar el contexto usando...Hola,<br />Unicamente puedes alterar el contexto usando los procedimientos y funciones del paquete que has autenticado para ese fin.<br /><br />Creaste el contexto autorizando al paquete PK_SETID_CUENTA, el cual definiste un unico procedure, set_setid. Es ese el unico procedure que puedes ejecutar para alterar tu contexto.<br /><br />Por tanto la ejecución de DBCT_CMC.PK_CUENTA_VENTA.SP_SET_CONTEXTO no es válida. No corresponde a la definicion del contexto que has definido.<br /><br />Espero que sea de ayuda.<br /><br />Saludos.lferhttps://www.blogger.com/profile/00618392085702183279noreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-35702597743102973072010-01-09T07:49:18.399-08:002010-01-09T07:49:18.399-08:00OK, gracias por contestar, el codigo que use lo es...OK, gracias por contestar, el codigo que use lo especifico abajo; el caso es que herede una aplicacion en la que la tabla de cuentas no tiene unidad de negocio y ahora cambiaron el plan de cuentas y se diferenciaron dichas cuentas entonces la solucion q se me ocurrio fue reemplazar la tabla con una vista dinamica; la duda que tenia era por ejem. si entran dos usuarios a la aplicaion cada uno de diferente unidad de negocio (SETID) cada sesion vera la data que le corresponde o quedara el valor del contexto del ultimo ingreso esto porque la aplicacion internamente usa un solo usuario de base de datos.<br /><br />CREATE CONTEXT app_cntxt_setid USING PK_SETID_CUENTA<br /><br />CREATE OR REPLACE PACKAGE DBCT_CMC.PK_SETID_CUENTA IS<br />PROCEDURE set_setid (p_setid IN VARCHAR2);<br />END;<br />/<br />CREATE OR REPLACE PACKAGE BODY DBCT_CMC.PK_SETID_CUENTA iS<br />PROCEDURE set_setid (p_setid IN VARCHAR2) IS<br />BEGIN<br />DBMS_SESSION.SET_CONTEXT('app_cntxt_setid', 'setid', p_setid) ;<br />END;<br />END;<br />/<br /><br />En esta me sale el error:<br />BEGIN<br />DBCT_CMC.PK_CUENTA_VENTA.SP_SET_CONTEXTO('CMC');<br />END;<br />incluso probe asi:<br />EXEC DBCT_CMC.PK_CUENTA_VENTA.SP_SET_CONTEXTO('CMC');<br /><br />La vista la cree asi:<br />CREATE VIEW V_CUENTA_VENTA AS<br />SELECT<br />ID_CUENTA,<br />ID_MON,<br />CUE_ID_CUENTA,<br />CUE2_ID_CUENTA,<br />CUE3_ID_CUENTA,<br />CUE4_ID_CUENTA,<br />CUE5_ID_CUENTA,<br />CUE6_ID_CUENTA,<br />TX_CONCEP<br />FROM CUENTA_VENTA_SETID<br />WHERE SETID = sys_context('app_cntxt_setid','setid')<br /><br />el usuario dueño del esquema en el que cree los objetos es DBCT_CMC.<br /><br />Muchas gracias por tu ayuda.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-84032660891532761132010-01-09T07:49:04.347-08:002010-01-09T07:49:04.347-08:00Hola, con gusto puedo ayudar.
Puedes colocar todo...Hola, con gusto puedo ayudar.<br /><br />Puedes colocar todo el codigo que usaste para llegar al error?<br />Desde la creacion del contexto, paquete hasta la ejecucion del procedimiento.<br /><br />Es importante para saber que ocurre.<br /><br />Saludoslferhttps://www.blogger.com/profile/00618392085702183279noreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-52729815803606385902010-01-09T07:48:47.260-08:002010-01-09T07:48:47.260-08:00(comentarios movidos desde otro articulo, aqui est...(comentarios movidos desde otro articulo, aqui esta mas relacionado)<br /><br />Es sobre el articulo de CREAR UNA VISTA PARAMETRIZADA<br />porfavor necesito ayuda estoy creando una vista segun los pasos que explicaste pero al ejecutar el procedure para setear el parametro del contexto me sale este error :<br /><br />ORA-01031: insufficient privileges<br />ORA-06512: at "SYS.DBMS_SESSION", line 58<br />ORA-06512: at "DBCT_CMC.PK_CUENTA_VENTA", line 9<br />ORA-06512: at line 1<br /><br />el usuario con que ejecute tiene permiso de ejecucion de cualquier procedimiento y el de creacion de cualquier contexto.<br />Gracias.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-17603359183879263582009-12-03T03:18:25.380-08:002009-12-03T03:18:25.380-08:00Me ha venido perfecto para parametrizar una vista,...Me ha venido perfecto para parametrizar una vista, y tirar de ella tanto de una aplicación Java como desde Reports Builder.<br /><br />Gracias¡¡Lebrijohttp://blog.lebrijo.comnoreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-59126143118096783192009-04-22T08:59:00.000-07:002009-04-22T08:59:00.000-07:00Gracias por los comentarios.
Las fine-grain polic...Gracias por los comentarios.<br /><br />Las fine-grain policies no solamente permiten agregar este filtrado a vistas sino tambien a tablas. Con esto no afectamos bases de datos dependientes de otras aplicaciones, ya que no habrá necesidad de alterar ningún objeto. En ese sentido es 'transparente'. Además puedes idear lógica compleja con PL/SQL para armar el filtro dinámico.<br /><br />Saludoslferhttps://www.blogger.com/profile/00618392085702183279noreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-7287172174706883932009-04-22T08:39:00.000-07:002009-04-22T08:39:00.000-07:00Salvo que se me escape algo, si es necesario invoc...Salvo que se me escape algo, si es necesario invocar explícitamente al setter no es nada que no se pueda hacer ya con un paquete convencional.<br />Supongo que cuando postees el ejemplo lo veré más claro.<br /><br />En cualquier caso, gracias por compartirlo. Tienes un blog muy instructivo.Carlos C.https://www.blogger.com/profile/07021486540777849745noreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-34320877111293663162009-04-22T08:34:00.000-07:002009-04-22T08:34:00.000-07:00Desde luego, los contextos son de vital importanci...Desde luego, los contextos son de vital importancia para poder implementar Fine-Grained Access Control para restringir el acceso a datos a nivel de filas (agregando dinámicamente filtros a las consultas que realiza un usuario), impidiendo que éste acceda a registros no autorizados dentro de un objeto. Basicamente defines políticas de seguridad (código que será incorporado a cada 'WHERE' de SQL). Luego esas políticas se asociarán a los usuarios, y Oracle automáticamente reescribirá los SELECTs que ejecute un usuario, para incorporar estos filtros. Para ese filtrado dinámico, Oracle hace uso del contexto definido.<br /><br />Este es una funcionalidad muy interesante para seguridad de acceso a datos. En algún momento mostraré algun ejemplo práctico, igualmente la documentación al respecto en OTN es fácil de seguir.lferhttps://www.blogger.com/profile/00618392085702183279noreply@blogger.comtag:blogger.com,1999:blog-6230959840389481677.post-21720224049657489922009-04-22T07:57:00.000-07:002009-04-22T07:57:00.000-07:00No entiendo por qué hace falta un contexto para ut...No entiendo por qué hace falta un contexto para utilizar una propiedad de un paquete en una vista.<br />¿Esto de los contextos tiene alguna otra utilidad?Carlos C.https://www.blogger.com/profile/07021486540777849745noreply@blogger.com