Vraag : PL/SQL de de lijstgegevens van de uitvoer aan .csv dossier en sparen; lanceer Excel binnen PL/SQL en lading opgeslagen .csv dossier

Ik gebruik PL/SQL (niet SQL*PLUS).

I wil de volledige lijst uitvoeren en bewaart het als .csv dossier gebruikend code PL/SQL. (I die Oracle 9i leiden.)
I wil Excel lanceren en Excel hebben het opgeslagen .csv dossier (zonder manueel het moeten het in Excel openen) laden gebruikend PL/SQL code.

I heeft geprobeerd gebruikend het bevel van spoel, maar het blijkt dat spoel een bevel is SQL*PLUS-only aangezien ik niet het aan/>My bestaande code work.

I eerder niet moet dwaas rond met het creëren van een procedure of een functie om dit te doen. Ik wil eenvoudig de .csv uitvoer naar filename van mijn keus, dan, zodra het (op mijn lokale machine, niet server) wordt bewaard, ik wil de code Excel lanceren en het .csv dossier openen dat ik enkel heb opgeslagen. Ik zou willen toevoegen het manuscript om dit volgend te doen de voltooiing van de steekproef van mijn manuscript below.

I sommige commentaren heeft gelezen dat dit met ODBC of OLE kan worden gedaan, maar de gegeven voorbeelden zijn lang en verwarrend, zoals de voorbeelden zijn ik het doen van dit door een procedure te creëren heb gezien.  Ik let op gebruikend geen van deze benaderingen, maar ik heb geen idee hoe te om hen, of aan opstelling te coderen andere opties van Oracle indien nodig, om hen ertoe te brengen om te werken. Ik verbind met het gegevensbestand van Oracle met een bestaande verbinding ODBC, als dat matters.

It als dit zou moeten zijn een eerder ongecompliceerde taak schijnt (en zeker niet ongebruikelijke), maar na het lezen van een aantal reacties op EE en AskTom, kan ik niet om het even wat vinden die works.
---naam
Table: KSEND
Here is een uittreksel van het manuscript van het TUSSENVOEGSEL:

INSERT IN KSEND
(UITGEZOCHTE VERSCHILLENDE f.alpha_5,
f.alpha_6,
f.ss_num,
vervangen (f.last_name, „,“, '') aangezien last_name,
(f.first_name, „,“, '') als first_name vervangt, vervangt
f.middle_initial,
f.birth_date,
f.gender_cd,
f.marital_stat_cd,
(f.addr_1, „,“, '') als addr_1, vervangt
(f.addr_2, „,“, '') als addr_2,

--gevolgd door 18 meer gebieden---

VAN employee_copy F, system_lookup r
WAAR (f.emp_stat_cd = IS 'a' AND
(f.alpha_6 = „NORM“ OF f.alpha_6 = „IMPR“) AND
f.decimal_2 NIET ONGELDIG));

Antwoord : PL/SQL de de lijstgegevens van de uitvoer aan .csv dossier en sparen; lanceer Excel binnen PL/SQL en lading opgeslagen .csv dossier

Bewaren van CSV aan een dossier op het het dossiersysteem van de gegevensbestandserver is vrij ongecompliceerd gebruikend UTL_FILE.

U werkelijk hebt zelfs niet de temperaturenlijst nodig.

Codeer enkel uitgezochte het gebruiken koordconcatinations:

cre�ër of vervang procedure my_proc
is
zijnd


voor I binnen (uitgezochte verschillende f.alpha5 || „,“ || f.alpha_6 || „,“ ||  f.ss_num… als myRow van…) lijn
      utl_file.put_line (i.myRow);

eind lijn;

eind;
/

Ik ken niet van een manier om Excel van PL/SQL rechtstreeks te lanceren.  U zou een Java opgeslagen procedure kunnen kunnen tot stand brengen om dit te doen.

Ik veronderstel u één of andere soort toepassingsinterface hebt die de opgeslagen procedure zal uitvoeren om tot CSV te leiden.  Kan dat geen OS om een programma te lanceren telefoneren?
Andere oplossingen  
 
programming4us programming4us