|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2002
Messaggi: 4329
|
[sql]stampare contenuto tabelle
devo fare diverse procedure che stampino il contenuto delle tabelle in questo modo (piu o meno):
campo campo campo val val val insomma vorrei ottenere lo stesso risultato del mediocre output di una select * pero fatto con una procedura...uso dbms_output.put_line per mettere i campi (distanziati alla bella e meglio) e poi ciclo con un cursore e stampo i singoli campi cercando di incolonnarli come meglio posso....il guaio è che i valori di questi campi sono variabili in lunghezza e quindi non vedo alcuna soluzione (se voglio tenere tutto un minimo incolonnato)... ora, premesso che sono niubbo, mi piacerebbe sapere se esiste un modo per fare cio che dico, oppure qualche idea geniale oppure devo cambiare strada...alla fine non mi serve nulla di raffinato, devo solo visualizzare cio che c e dentro le piu disparate tabelle (ovviamente facendo una procedura per ogni tabella, perche non so se esiste un modo per fare una procedura generica figa)... spero di essermi spiegato
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga| |ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck| |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2002
Messaggi: 4329
|
mmm help!
altra cosa...se usando jdbc mi connetto al db, le procedure che stampano con dbms_output eccetera, come si comportano con java? cioe, mi mandano l output direttamente o devo usare qualcosa di magico per redirigere il tutto?
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga| |ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck| |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 1999
Messaggi: 1565
|
Ciao,
conosco un po' di SQL ma sono a digiuno di Java. Da quello che riesco a capire stai cercando di inviare a console il risultato di una select: in StarBasic uso il servizio RowSet che rispecchia quello disponibile in Java e rende appunto disponibile il cursore per scorrere le righe. E' possibile usare il metodo getString() per tutti i campi del rowset, anche quelli numerici/data. A questo punto misuri la lunghezza delle stringhe ritornate, aggiungi gli spazi necessari in testa e li stampi a console. Un esempio in SB: Codice:
do while oRowSet.Next() sRigaDaStampare="" for i=0 to oRowSet.Columns.count-1 sMiaStringa=oRowSet.getString(i) if len(sMiaStringa)<16 then sMiaStringa=string(16-len(sMiaStringa);" ") & sMiaStringa else sMiaStringa=left(sMiaStringa;16) end if sRigaDaStampare=sRigaDaStampare & sMiaStringa next i print sRigaDaStampare loop |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
con dbms_output da java secondo me non ci salti fuori. dbms_output ti salta fuori tipo se lanci la procedura da sqlplus... se la lanci da java dove dovrebbe redirigerlo? Sul tuo standard output? Boh...
Così ad occhio, puoi fare una procedura generica che data una tabella ti faccia una "select * from table1"... hai familiarità con il data dictionary? Detta brutalmente, sotto lo schema sys potrai notare diverse view con tante belle informazioni. C'è ad esempio la "ALL_TAB_COLS", dove hai il nome della tabella e tutte le colonne con i relativi tipi. Poi da java fai "select * from t" e ti cicli il resultset e stampi i valori o fai quel che ti pare.
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:42.