Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Hyundai Ioniq 9: dopo due settimane di test non avremmo voluto restituirla
Hyundai Ioniq 9: dopo due settimane di test non avremmo voluto restituirla
Una ammiraglia elettrica, da sei o sette posti, con il comfort di viaggio come missione assoluta. Un'auto non per tutti, ma di cui ti innamori dopo pochi giorni, ecco com'è andata la nostra prova di lunga durata
LG UltraGear evo GM9: 27 pollici, 5K, Mini LED e Dual Mode
LG UltraGear evo GM9: 27 pollici, 5K, Mini LED e Dual Mode
Hyper Mini LED con 2.304 zone, DisplayPort 2.1 e Dual Mode: 5K a 165 Hz oppure QHD a 330 Hz: LG propone un monitor da gioco ma dalla buona versatilità creativa, con prestazioni interessanti e un listino di 1.220 euro. Peccato l'alimentatore ingombrante
Motorola edge 70 Fusion FIFA World Cup 26 Edition: un ottimo smartphone per i fan del calcio
Motorola edge 70 Fusion FIFA World Cup 26 Edition: un ottimo smartphone per i fan del calcio
Motorola edge 70 Fusion FIFA World Cup 26 Edition porta la maglia iridata su uno smartphone accessibile: display Extreme AMOLED da 6,78 pollici a 144Hz, fotocamera Sony LYTIA 710 con moto ai, Snapdragon 7s Gen 3 abbinato a 8GB di RAM, batteria da 5200 mAh con ricarica TurboPower a 68W e certificazione IP68/IP69, il tutto in una veste PANTONE Silhouette con logo dorato a 24 carati, moto buds bass incluse in confezione e contenuti software dedicati ai Mondiali 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-03-2007, 15:04   #1
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
[PL/SQL] Matrice VARCHAR2

Ho fatto una procedura che prende a blocchi di n records alla volta
dove n é passato come parametro e per adesso stampa a video.
Dovrei invece copiare i valori ottenuti in una matrice passata sempre
come parametro. Si puó ?

Codice:
SET SERVEROUTPUT ON SIZE 1000000

CREATE OR REPLACE PROCEDURE MY_PROC( n IN number )
AS
   c     NUMBER;
   d     NUMBER;
   n_tab DBMS_SQL.varchar2_Table;
   indx  NUMBER := 1;

BEGIN

   c := DBMS_SQL.OPEN_CURSOR;

   DBMS_SQL.PARSE(c, 'select distinct SS from MY_TABLE order by SS', 1);

   DBMS_SQL.DEFINE_ARRAY(c, 1, n_tab, n, indx);

   d := DBMS_SQL.EXECUTE(c);

   LOOP
      d := DBMS_SQL.FETCH_ROWS(c);

      DBMS_SQL.COLUMN_VALUE(c, 1, n_tab);

      FOR i in n_tab.FIRST .. n_tab.LAST
      LOOP
         DBMS_OUTPUT.PUT_LINE(n_tab(i));
         -- QUI ANDREBBERO COPIATI I VALORI IN MATRICE
      END LOOP;

      EXIT WHEN d != n;
   END LOOP;

   DBMS_SQL.CLOSE_CURSOR(c);

   EXCEPTION
      WHEN OTHERS THEN
         IF dbms_sql.is_open(c) THEN
            DBMS_SQL.CLOSE_CURSOR(c);
         END IF;
END;
/
grazie
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 15:45   #2
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
trovato:
TYPE NUM_ARRAY IS TABLE OF VARCHAR2(n);
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 15:53   #3
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da trallallero Guarda i messaggi
trovato:
TYPE NUM_ARRAY IS TABLE OF VARCHAR2(n);
Così non è una matrice. O meglio, è una matrice 1xN di varchar2(n).

Così a occhio eh...però forse non ho ben capito...
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 17:24   #4
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da shinya Guarda i messaggi
Così non è una matrice. O meglio, è una matrice 1xN di varchar2(n).

Così a occhio eh...però forse non ho ben capito...
mi sa che hai ragione perchè mi riempie solo il primo elemento. Ormai sto a casa ma domani mi sa che ho bisogno di aiuto
Grazie
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 07:36   #5
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
eccolo:
Codice:
TYPE NUM_ARRAY   IS TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER;
il (3) corrisponde alla larghezza della stringa e 3 mi basta.
Per dire che é una matrice basta aggiungere alla fine INDEX BY BINARY_INTEGER
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 12:36   #6
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da trallallero Guarda i messaggi
eccolo:
Codice:
TYPE NUM_ARRAY   IS TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER;
il (3) corrisponde alla larghezza della stringa e 3 mi basta.
Per dire che é una matrice basta aggiungere alla fine INDEX BY BINARY_INTEGER
Se metti index by binary_integer ( o pls_integer ) hai un "array" associativo. Se ti va bene puoi usare anche quello in effetti.
Per avere una matrice vera e propria dovresti fare qualcosa tipo:

Codice:
type t_columns is table of varchar2(3);
type t_matrix is table of t_columns;

my_matrix t_matrix;
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 13:13   #7
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da shinya Guarda i messaggi
Se metti index by binary_integer ( o pls_integer ) hai un "array" associativo. Se ti va bene puoi usare anche quello in effetti.
Per avere una matrice vera e propria dovresti fare qualcosa tipo:

Codice:
type t_columns is table of varchar2(3);
type t_matrix is table of t_columns;

my_matrix t_matrix;
non l'ho capita
varchar2 é giá un array quindi dicendo TABLE OF diventa un array di array = matrice, a intuito ovviamente.
Tu invece fai un doppio passaggio, perché ?
Comunque grazie
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Hyundai Ioniq 9: dopo due settimane di test non avremmo voluto restituirla Hyundai Ioniq 9: dopo due settimane di test non ...
LG UltraGear evo GM9: 27 pollici, 5K, Mini LED e Dual Mode LG UltraGear evo GM9: 27 pollici, 5K, Mini LED e...
Motorola edge 70 Fusion FIFA World Cup 26 Edition: un ottimo smartphone per i fan del calcio Motorola edge 70 Fusion FIFA World Cup 26 Editio...
Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati? Renault 5 elettrica al giudizio definitivo: solo...
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
Proseguono le operazioni di ripristino d...
Il razzo spaziale NASA SLS e la capsula ...
Starship: il recupero di Ship 40 prosegu...
Prezzi iPhone 17 in aumento: gli ultimi ...
Edge segue Chrome: a rischio molte esten...
Studi su batteri e archaea: la vita sull...
Claude Code, le diverse sessioni ora par...
I sistemi di sicurezza attuali non basta...
iPhone, nuove indiscrezioni sul modello ...
Le iconiche Sony WH-1000XM4 stanno per t...
TV 55 pollici in offerta: Xiaomi 4K a 32...
Robot per le piscine in offerta su Amazo...
Nessun downgrade a Vera e Rubin Ultra, s...
Ho costruito un agente IA locale dentro ...
TOP 10 Amazon del weekend, si inizia col...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:46.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v