fishScript.com d
Home| Progetto| Web| Faq| Acronimi

Argomenti




Oracle... Script: Loader



PLSQL... Script: Errori
Oracle... Tip: host ls
Oracle... Faq: Rename column

Shell scripting... Script: Array

A User Agent, like a web browser, uses HTTP to request a HTML document



In programming the danger of exploring the small details of coding is that you get obsessed with every line of code you write, thereby greatly reducing productivity.
In general, is not worth obsessing over code.
On the other hand you should code with deliberation and intent. Steven Feurstein Oracle Magazine July /August 2004

A User Agent, like a web browser, uses HTTP to request a HTML document

Oracle

Home >Oracle > sqlldr and plsql function

Stampa  Stampa


Oracle loading utility sqlldr allows to check, manipulate or define Oracle events during data loading linking the insert action to a plsql function.

This is a first trivial example to show code and syntax to execute a plsql function while loading data via sqlldr. You need
  • a target table
  • a sqlldr control file
  • a plsql function
  • a data file
Let's assume, for some obscure reasons, the client asked to add to the content, a list of addresses, Italy if the field contains the string via or piazza and (Great Britain) if it contains street or square. The client explicitally requested a plsql function executed at table loading time. And so we please the Client as always. Here the data file, fields separated by ";":
file addresses.dat:
via latina 12;
via pio XII 132;
piazza alberone 1;
boulevard saint michelle 123;
128 street 8/a;
1 West street 13;
Sutton square 9;

The destination table is very simple:
create table list_address (address varchar2(256));


Event the sqlldr control file is very simple but it calls the plsql function fun_assign_country. The code basically says when loading the ADDRESS field execute the function fun_assign_country passing to it the ADDRESS value: file load_address.ctl
LOAD DATA INFILE addresses.dat  APPEND INTO TABLE list_address
FIELDS TERMINATED BY ';'
(ADDRESS "fun_assign_country(:ADDRESS)")

Here function fun_assign_country code (of course, must be compiled by the same Oracle schema that executes sqlldr: function fun_assign_country
create or replace function fun_assign_country(ADDRESS in varchar2) return
varchar2
AS
vADDRESS varchar2(256);
begin
if lower(ADDRESS) like '%via %'  or  lower(ADDRESS) like '%piazza%'  then
vADDRESS:=ADDRESS || ' (ITALY)';
return vADDRESS;
end if;

if lower(ADDRESS) like '%street%' or lower(ADDRESS) like '%square%'  then
vADDRESS:=ADDRESS || ' (GREAT BRITAIN)';
return vADDRESS;
end if;
return ADDRESS;
end fun_assign_country;
/
To execute sqlldr:
Tested on unix HP
hpsrv $> sqlldr myschema/mypass@mydb control=load_address.ctl data=addresses.dat

To check and enjoy the results:
SQL> select * from list_address;
SQL>
ADDRESS
via latina 12 (ITALY)
via pio XII 132 (ITALY)
piazza alberone 1 (ITALY)
boulevard saint michelle 123
128 street 8/a (GREAT BRITAIN)
1 West street 13 (GREAT BRITAIN)
Sutton square 9 (GREAT BRITAIN)
Dott. Marco Magnani - senior DBA / developer. Indipendent consultant: Rome, Bruxelles,New York




Tutorial
Flashback database to timestamp ripristinare il database ad una data determinata [Oracle] 
Auditing for wrong sql How to intercept wrong dml sql statement  [Oracle] 
Using data pump in interactive mode  [Oracle] 
Alter session set current_schema How to query other user tables without specify the schema name [Oracle] 
Procedura conteggio righe tutte le tabelle di uno schema esempio utilizzo NDS [PLSQL] 
Inserire righe in tabelle utilizzando %rowtype scrivere codice pl/sql compatto [PLSQL] 
Generazione di numeri casuali dbms_random.value [PLSQL] 
Eseguire comando truncate di tutte le tabelle di uno schema atraverso dizionario dati e istruzione sql dinamica  [PLSQL] 
Dropping a database  [Oracle] 
Create new user basic sql statements [Oracle] 
Viste note e appunti [Oracle] 
NOT EXISTS clause basic example [Oracle] 
Creazione di un database Oracle 10g da linea di comando esempio su sistemi Windows Server / XP: comandi e script [Oracle] 
Clean up audit tables remove auditing logs  [Oracle] 
Nomenclatura oracle tipologie oggetti catalogo  [Oracle] 
Script
dbms_output.put_line Stampare spazi bianchi [Oracle] 
Opzione DEFAULT per il valore di una colonna  [Oracle] 
Cercare le colonne in uno schema utilizzare le tabelle del dizionario dati di Oracle [Oracle] 
Esempio script dos per eseguire export di schema automatizzare procedure di export e rinominare il file in base alla data corrente [Oracle] 
Dato il nome di una vista ricava informazioni su tipo e attributi della colonna di riferimenti tabelle dizionario dati [Oracle] 
Redo log ricollocare/trasferire i file di Redo [Oracle] 
Scrivere su un file esempio con UTL_FILE package [PLSQL] 
Leggere un file di testo  [PLSQL] 
Esempio funzione MOD in un loop ... [PLSQL] 
Record sintassi di base: definizione, dichiarazione, assegnazione e stampa [PLSQL] 
Errori intercettare codice e descrizione errori sql [PLSQL] 
Esempio inserimento righe all'interno di un loop  [PLSQL] 
Cursore implicito SQL esempio con SQL%ROWCOUNT [PLSQL] 
Esempio tipo VARRAY gestione array [PLSQL] 
TYPE TABLE utilizzare le collections [PLSQL] 
Comandi
Modificare il formato di default  [Oracle] 
systimestamp  [Oracle] 
CURRENT_TIMESTAMP  [Oracle] 
Spostare un indice in un diverso tablespace  [Oracle] 
analyze  [Oracle] 
Costruire istruzioni sql dinamiche il carattere speciale &  [Oracle] 
Exp utility esempio export di singole tabelle [Oracle] 
Group by mese di colonna di tipo data  [Oracle] 
ALTER SEQUENCE Modificare una sequenza [Oracle] 
Spazio libero nei tablespace utilizzo tabella DBA_FREE_SPACE [Oracle] 
NLS_DATABASE_PARAMETERS ricavare i parametri del database [Oracle] 
Lista control files  [Oracle] 
Spostare una tabella in un diverso tablespace  [Oracle] 
Creazione di una directory in ambiente oracle  [Oracle] 
Funzione TRUNC esempio visualizzazione primo giorno del mese corrente [Oracle] 
Codici errore
Errore connessione client ORA-12638 Credential retreival failed [Oracle] 
impdp / expdp importare in sql metadata del database datapump per esportare ed importare metatadati  [Oracle] 
ORA-06553: PLS-213,ORA-06553: PLS-213,ORA-06553: PLS-213 Errori in fase di creazione database, occorre eseguire gli script di catalog [ERRORI] 
Operazioni sulle date utilizzando il nome dei mesi NLS_DATE_LANGUAGE ORA-01843: mese non valido / not a valid month [Oracle] 

signal Marco Magnani marcomagnani@fishscript.com



Cerca




Oracle... Info: EXPLAIN PLAN statement

Anger is creative, depression is useless.
Dyson, Freeman J.


Anger is creative, depression is useless.
Dyson, Freeman J.

Oracle... Info: EXPLAIN PLAN statement

Oracle... Citazioni: Designing an efficient Schema ...

Oracle... Definizioni: Transazione

Oracle... Definizioni: Variabile bind


Shell scripting... Script: Debug shell program



fishScript.Com is accessible by Mobile access technology as mobile phones, Palm and Pocket PC .

Nicoleta e Marco Magnani tutorial, examples, courses, esempi, corsi, esercizi, appunti vari Dottoressa Nicoleta Dragu Formatrice Docente Insegnante Mediatrice Culturale Dott. Marco Magnani Universita La Sapienza Roma Master Computer Science Hunter College New York , Data Base Administrator DBA oracle System architect

Last modified: 2017-11-30 amministratore@fishscript.comNico and Marco Magnani Software Production
Home|About this Site © 2003-2008 www.fishScript.com ®