- Articulos
- Manuales
- Bases de datos de Software Libre
- Data Warehousing y metodología Hefesto
- Descubriendo el BI
- Grafico OpenFlash dinámico
- Guia para la adquisición de un sistema de DWH
- Metodología CRISP-DM para minería de datos
- Mineria de datos para EPH
- Recopilación de artículos sobre Oracle
- DW y DM aplicados al estudio del rendimiento academico
- Blogs
- Foro
- Videos
- Eventos
- Tablón de Empresas
- Microsites
- Directorio
tengo el siguiente codigo
Imports System.Data.OracleClient
Public Class Form1
Private Sub btnbuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbuscar.Click
Dim cadenaDeConexion As String
Dim conexion As OracleConnection
Dim dsdataset As New DataSet
cadenaDeConexion = " Data source=ORCL; persist security info=false; User ID= SCOTT; password= scott;"
conexion = New OracleConnection(cadenaDeConexion)
conexion.Open()
Dim query As String
query = "select scott.emp.ename , scott.emp.deptno, scott.dept.loc from" & _
" scott.emp inner join scott.dept on scott.emp.deptno = scott.dept.deptno " & _
" where ename like '%" & UCase(Me.txtnombre.Text.Trim) & "%'"
Dim MiAdaptador As New OracleDataAdapter(query, conexion)
Try
MiAdaptador.Fill(dsdataset)
Me.DataGridView1.DataSource = dsdataset.Tables(0)
Catch ex As Exception
End Try
End Sub
lo que busco es llenar un datagrid con la informacion, pero al darle click al boton me aparece el siguiente error ORA-00604: error ocurred at recursive SQL level 1 ORA 06502 PL/SQL numeric or value error: character string buffer to small ORA 06512: at line 10..
que puedo hacer?? no e encontrado la solucion a este problema!! le agradeceria que me ayudara.. muchas gracias
Hola
podes revisar estas opciones creo que te pueden servir para lo que necesitas, haciendo uso de los dblinks
cursor integer
devuelve binary_integer
--esto para una db en sql server
ejecutar:= "exec insert .... commit"
cursor := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@dblink;
DBMS_HS_PASSTHROUGH.PARSE(cursor, ejecutar);
devuelve := DBMS_HS_PASSTHROUGH.EXECUTE_NON_QUERY@dblink(cursor);
--cerrar
DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@dblink(cursor);
bueno espero te sirva, nos cuentas como te fue.
saludos.
La verdad es que yo siempre lo he hecho al revés, siempre intento utilizar los dblinks para hacer selecciones de datos, y las inserciones hacerlas 'en local', es la manera más segura, no tienes problemas adicionales con los permisos y te ahorras estos problemas.
Si puedes haz el INSERT desde la BD 'ppt' utilizando un dblink para seleccionar los datos de la BD donde tienes el procedimiento pt_pruebas.
Puede que te vaya bien echarle un vistazo al tema Insert entre bases de datos remotas enlazadas por dblink
Y si al final descubres algo más, porqué no se puede hacer, u otra manera de hacerlo, no te olvides de explicárnoslo..
Hola podría ayudarme con una consulta que tengo sobre los dblink
Tengo un paquete Cl_pruebas1 el cual llama aun procedimiento pt_pruebas.
En el procedimiento pt_pruebas realizo varios select e insert a unas tablas que estan en una base ppt
Select *
From tabla1@ppt.dd.com
Where Customer_Id = Cn_Customerid ;
Insert Into tabla1@ppt.dd.com
En este procedimiento pt_pruebas cierro los dblink y luego en el paquete principal Cl_pruebas1 realizo un commit a todo, pero el problema es que no se estan actualizando las tablas (tabla1@ppt.dd.com) que estan en la base ppt, solo se actualizan para la otra base qppt, no entiendo cual podría ser el problema.
La verdad es que es un tema que me gusta bastante, y al que le he dado muchas vueltas, lástima que no haya tenido tiempo de desarrollarlo. Ahora que casi todo comienza a disponer de su versión Saas, Cloud o simplemente web ya no es algo muy novedoso, pero habría sido muy interesante ser de los primeros en implementar un servicio online de limpieza de datos.
Dejando aparte las herramientas de ETL y demás que disponen de plugins y versiones Saas, enumero algunas de las empresas que ya ofrecen cosas similares a lo que yo quería hacer:
Donde también suele triunfar la limpieza de datos es en las aplicaciones de CRM, sobretodo la parte de deduplicación, para mantener impecable la base de datos de clientes. He visto también más de un plugin para CRM's.
Pero ahora donde quizás tocaría crear algo novedoso es en las aplicaciones para dispositivos móbiles, que también tienen sus agendas a las que van llegando datos de varios orígenes. Una opción podría ser aprovechar tus funciones de normalización de teléfonos y direcciones para crear una aplicación sencilla de datacleansing para iPhone o Android..
Parece que estoy llegando tarde a todos los temas interesantes, pero como dicen: mejor tarde que nunca.
Realmente me pareció muy interesante la propuesta de un producto de calidad en modalidad SaaS, o como dices DaaS. En algún momento se me había ocurrido algo similar, pero solo con teléfonos y direcciones (y normalizado para la Argentina) y lamentablemente quedó solo en las funciones de normalización.
En fin, como para redonder es un modelo que podría funcionar, quizas apuntando a las pequeñas y medianas compañias que no pueden contear ciertos productos de limpieza de datos, donde creo se pueden lograr muy buenos resultados, utilizando casi unicamente expresiones regulares y alguna que otra funcion.
Saludos,
Jose.
Si es JavaScript puro, porque no usas el step de JavaScript ?
Quizas no estoy entendiendo bien que es lo que quieres hacer, podrías quizás explicarnos un poco mejor tu problema.
Saludos.
Muy buen trabajo, he utilizado la imagen virtual en un mac y va de maravilla, hay alguna opción para instalarla en una partición del disco duro?
Muchas gracias.
Yamil, para lo que comentas te recomiendo activar la auditoría y/o utilizar herramientas de monitorización de la base de datos.
En el primer caso ten en cuenta que la base de datos siempre intentará utilizar toda la memoria disponible que tenga. Si es demasiada, y el servidor necesita parte de esa memoria para dar servicio a otros procesos tendras que reducirla modificando los parámetros de memoria de la BD.
Antes de utilizar herramientas externas, te recomiendo que utilices los recursos y asistentes proporciona Enterprise Manager para controlar las áreas de memoria de la BD, enlazo un artículo de mailxmail que da algunos apuntes sobre cómo hacerlo.
Otras herramientas como Toad for Oracle, o NimBUS también te pueden ayudar.
En Recopilación y consultas útiles de Oracle tienes también alguna consulta para saber directamente algunos datos de la memoria:
•• Consulta Oracle SQL para conocer los aciertos de la caché (no debería superar el 1 por ciento) select sum(pins) Ejecuciones, sum(reloads) Fallos_cache, trunc(sum(reloads)/sum(pins)*100,2) Porcentaje_aciertos from v$librarycache where namespace in ('TABLE/PROCEDURE','SQL AREA','BODY','TRIGGER');Y a un nivel más avanzado, el artículo Monitoring Oracle SGA and PGA Memory Changes, de Burleson Consulting también te puede ser útil.
Sobre los problemas de rendimiento que comentas en el segundo párrafo, aparte de monitorizar la BD tendrás que monitorizar otros procesos a nivel de sistema, y comparar. Al tener Oracle en RAC aún lo tienes más complicado. Si la instalación de RAC se ha hecho desde cero, no creo que te de problemas, pero se me ocurre que si se ha hecho una migración desde una BD que no estaba en RAC podrías tener, por ejemplo, algún problema de sincronización en la generación de claves primarias o secuencias.
Puedes hacerlo utilizando sinónimos públicos de Oracle, se trata sólo de crear un sinónimo para cada objeto excluyendo del mismo el nombre del owner.
Te enlazo el post Utilización de sinónimos para compartir objetos, donde se explica con más detalle cómo hacerlo.
Un saludo,
Para que veas el contenido de un paquete , es decir el listado de objetos que lo componen, lo puedes hacer accediendo a la vista all_procedures, donde la columna Object_name te lista el nombre del paquete y la columna procedure_name te lista el nombre no solo de los procedimientos sino tambien el nombre de las funciones que componen el paquete
de interes
Ahora tengo otra duda, resulta que tengo en la bd de oracle 10g algunos procesos que me están consumiendo casi la totalidad de la memoria, por ponerte un ejemplo de 16 Gigas me queda en 100,200 ó 300 megas, y no puedo determinar que proceso es el que se me está comiendo la memoria. Te agradecería si tienes por ahi algún scripts que saque esta información.
Por otro lado, una consulta mas, tengo una bd oracle10g 10.2.0.3 r2, y una aplicación desarrollada en forms 6i y report 6i y tengo problemas de rendimiento, hay alguna forma de averiguar si es problema de la base de datos o de la aplicación o del servidor, tenemos una estructura RAC de oralce, un arreglo cx-310 de 15 rmp y 2 server o nodos PE 2950 cada uno con 16 Gigas de RAM
Gracias.
Hola
Tengo un usuario USR1 con su esquema ESQ1, como puedo crear un USR2 que vea ese mismo esquema ESQ1 y que las consultas no me pidan el nombre del esquema, por ejemplo:
Select * from ESQ1.tabla1;
Saludos
Gracias a ti por preparar y compartir con la comunidad esta imagen virtual que seguro que ha ayudado a mucha gente a conocer Pentaho. Ahora con la demo online lo ponemos aún más fácil.
Seguro que más de uno (yo mismo sin ir más lejos) ya está esperando esa actualización!