17. februar 2010 - 20:34Der er
11 kommentarer og 1 løsning
stored procedures uden pl/sql
Hey
Jeg har en række sql sætningen (select, delete, insert) som skal kører på en oracle database. Er det muligt at lægge dem ind som stored procedures uden at skrive dem som pl/sql eller understøtter oracle ikke stored procedures der KUN består af sql?
Men så er det stadig en stored procedure!?, og hvis en select så returnere mere end én række så skal man have en cursor og så er det ikke helt så simpelt mere.
Jeg må indrømme at jeg ingen erfaring har med pl/sql og oracle stored procedure (kun kun læst meget lidt). Min situation er at jeg har en access database med en masse "stored procedured" (som kun består at sql) alt det skal nu ligges over på en oracle database, så ville vide om der var en mulighed for at jeg kan "nøjes" med kun at skrive sql i en stored procedure i oracle eller om det SKAL være i oracles pl/sql. Altså om jeg er tvunget til at lære pl/sql eller om der en en genvej eller commande der gør det lidt lettere. Håber det er forståligt
Applikation skal også skrives om fra vba til java.
Problemet er at jeg gerne vil undgå at skulle bruge tid på at lærer pl/sql. Det er dog ikke simple sql forespørgsler, de er relativ store og komplekse nogle af dem.
Der er dog 2 krav jeg skal overholde:
1. mine stored procedures må ikke skrives i java
2. når der skal skrives til tabellerne skal det gøres via en stored procedure. (Så de forespørgsler hvor jeg kun skal trække ud, kan jeg godt putte direkte ind i java koden, men vil nu helst have det som en stored procedure)
okay tak, lyder som sådan også nemt nok. Min bekymring er at man kan købe bøger på 800 sider om pl/sql, så det virker somom der umiddelbart er mange aspekter idet.
Da det jeg skal lave skal fungere i et miljø med vigtige data, kan jeg godt frygt at jeg overser noget hvis jeg bare laven en konvertering ved at google pl/sql og prøve mig frem.
Hvis jeg har en forespørgsel der f.eks. hedder:
Select navn, alder from person where alder > 18
hvordan ville hele commandoen se ud som der skulle skriver i sql+ for at oprette den procedurer? og er det noget jeg skal være opmærksom på generelt, hvis det kan siges her uden at være for omfattende?
CREATE OR REPLACE PACKAGE refcurpkg IS TYPE refcur_t IS REF CURSOR; END refcurpkg; / CREATE OR REPLACE PROCEDURE getsome(i_f1 IN INTEGER, o_rs OUT refcurpkg.refcur_t) AS BEGIN OPEN o_rs FOR SELECT f1,f2 FROM t1 WHERE f1 > i_f1; END; /
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.