Gratis no es... Eso viene licenciado dentro del paquete de MS SQL Server.
Es tan gratuito que viene con el sql express!
Gratis no es... Eso viene licenciado dentro del paquete de MS SQL Server.
No por quejarme, pero me he gastado casi que todo el dia investigando como llamo un Stored Procedure de Oracle en C# y llenar asi una tabla o lo que sea, casi no hay documentacion, o mejor dicho si la hay, pero de varias versiones y en cada una algo cambia, ademas que cada autor de cada blog u articulo usa Package en vez de usar el Stored Procedure directamente. He buscado en ingles y en español y pues ya lo logré, pero tenaz el trabajito..... SQL Server VS Oracle, ¿quien ganaria? si esto no mas fue llamando un SP, ¿que continuará?
No se que tan bueno sea esto, ya que entre menos documentacion, menos gente manejará la herramienta porque hay gente que se cansa a mitad de camino y prefieren pasarse a otras herramientas. DIgo que tal vez sea bueno por $$$$
Creo que es más desconocimiento y que te quedaste atrapado en el paradigma de uso del SQL Server Magement Studio.
si utilizas ODP la manera de hacerlo es estandard, es decir tal como lo haces para SQL Server debes hacerlo para oracle DB.,
en TOAD para generar un select como el que quieres, es ir al Schema Browser, clic derecho sobre la tabla , Generate Statement > Select
Documantación completa para ODP :
http://www.oracle.com/technology/docs/tech/windows/odpnet/index.html
http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
CREATE OR REPLACE PROCEDURE sp_post_cab(rc OUT sys_refcursor)
AS
BEGIN
OPEN rc FOR SELECT id_sol_prt_post, estado_solicitud, fecha_ventana_cambio FROM tbl_cab_sol_prt_post;
END sp_post_cab;
La manera mas practica que encontré para retornar un set de datos desde un Stored Procedure fue la siguiente:
Código:CREATE OR REPLACE PROCEDURE sp_post_cab(rc OUT sys_refcursor) AS BEGIN OPEN rc FOR SELECT id_sol_prt_post, estado_solicitud, fecha_ventana_cambio FROM tbl_cab_sol_prt_post; END sp_post_cab;
No tengo ni idea que esta haciendo ahi, pero lo que sé es que me está trayendo datos y es lo que necesito, ahora viene el cuento de pasarle datos para el UPDATE, INSERT y DELETE :S
CREATE OR REPLACE PROCEDURE MyUpdate( vcCampoFiltro In VARCHAR2 )
IS
BEGIN
UPATE laTabla
SET campo1 ='S'
WHERE campo2= vcCampoFiltro ;
END;
tu estas hablando de stored procedures y yo estaba hablando del Data Provider..
lo que hiciste es mejor con un select a secas que con un SP... ahi el SP sobra.
y lo del update, insert y delete es facil, pasas los parametros de filtro como parametros del SP y luego simplemente haces el DML... asi mas o menos
PHP:CREATE OR REPLACE PROCEDURE MyUpdate( vcCampoFiltro In VARCHAR2 ) IS BEGIN UPATE laTabla SET campo1 ='S' WHERE campo2= vcCampoFiltro ; END;
desde luego mucho mejor dejarlos en un package y no en una funcion suelta.
desde TOAD, asegurate que en el panel de resultados este activo el Tab REF CURSOR Results y haces estoJuanK_solocodigo!!! ayuda!! algun duro en Oracle por favor!!!
Con respecto al Stored Procedure que anteriormente mencioné, ¿como hago para ejecutarlo y ver el resultset?
es decir, en SQL Server yo podia hacer "EXEC miprocedimiento" y veia el grillado, pero no se como hacer eso en Oracle.
Añadiendo que por ahi he visto blogs donde dice algo como que tengo que declarar una variable refcursor pero ni si quiera puedo hacer eso:
"var rc refcursor" me salta el error ora-00900 Invalid Statement :S
Gracias si alguien me puede colaborar
CREATE OR REPLACE PROCEDURE sp_post_cab(rc OUT sys_refcursor)
AS
BEGIN
OPEN rc FOR SELECT CODES_CODIGO, CODES_CODIGO_PADRE FROM par_codigo_descripcion;
END sp_post_cab;
/
exec sp_post_cab(:ab)
estoy llevan una materia nuevas tecnologias y para esa materia nesecito una base de datos llena o con datos minimos de 6 meses no importa en cualquiera que sea sqlserver,mysql,access,oracle por favor si me facilitan una les quedare eternamente agradecido.
La base de datos numero 1 de ejemplos en Internet: NorthWind
http://www.microsoft.com/downloads/...12-0356-46a0-8da2-eebc53a68034&displaylang=en
SET SERVEROUT ON
DECLARE
l_contador PLS_INTEGER := 6; --Numero de lineas que serán afectadas, este numero debe ser hardcodeado ya debido a lo que se ha hablado con el lider funcional y la informacion que está en produccion
v_Cuenta NUMBER; --Este numero de lineas son las que hay en la tabla.
BEGIN
DELETE FROM A2219047_VCR
WHERE cod_cia = 1
AND nom_regra_vcr = 'SR_P_CT_399_VCR'
AND cod_ramo in (201, 203, 204, 207, 213, 214, 215, 217, 218, 314);
IF(l_contador = SQL%ROWCOUNT)
THEN
DBMS_OUTPUT.PUT_LINE('hacer COMMIT');
ELSE
DBMS_OUTPUT.PUT_LINE('hacer ROLLBACK');
END IF;
ROLLBACK;
END;
Alguna forma de guardar un consulta algo como un Store Procedure o una Vista en Access para consultarla desde una aplicacion desarrollada en C#?
SuerteX