Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di inc40
    Registrato dal
    Sep 2004
    Messaggi
    319

    Create table dinamicamente

    Salve,
    devo creare una tabella (Oracle) dinamicamente, mi costruisco quindi la stringa del nome, cioè "nome_Tabella", e poi eseguo:

    codice:
                sql = "CREATE TABLE '"+nome_Tabella"' (ID_1 NUMBER NOT NULL, ID_2 NUMBER NOT NULL);";
                try {
                    stmt = Connessione.Conn.createStatement();
                } catch (SQLException ex) {
                    JOptionPane.showMessageDialog(this,
                            "Errore durante la creazione dello statement.\nErrore " + ex.toString());
                }
                
                try {
                    stmt.execute(sql);
                    stmt.close();
                } catch (SQLException ex8) {
                    JOptionPane.showMessageDialog(this,
                            "Errore durante la creazione della tabella.\nErrore " + ex.toString());
                }
    e quando viene eseguito mi ritorna l'eccezione SQL che il nome della tabella non è valido.

    Come mai?

    Grazie
    Gli uomini, non avendo potuto guarire la morte, la miseria, l'ignoranza, hanno risolto, per vivere felici, di non pensarci.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Create table dinamicamente

    Originariamente inviato da inc40
    quando viene eseguito mi ritorna l'eccezione SQL che il nome della tabella non è valido.

    Come mai?
    Non conosco Oracle, quindi non ne posso essere certo, ma sei sicuro che accetti il nome quotato con l'apice singolo?? In MySQL ad esempio non è valido, si deve usare il "back tick" ovvero l'apice contrario [`].
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Nemmeno io conosco Oracle, ma la maggior parte dei DBMS (compreso MySQL) prevede che il nome della tabella nell'istruzione SQL possa essere dato anche senza apici...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di inc40
    Registrato dal
    Sep 2004
    Messaggi
    319

    Re: Re: Create table dinamicamente

    Originariamente inviato da andbin
    Non conosco Oracle, quindi non ne posso essere certo, ma sei sicuro che accetti il nome quotato con l'apice singolo?? In MySQL ad esempio non è valido, si deve usare il "back tick" ovvero l'apice contrario [`].
    Sì sono sicuro, anche perchè questa interrogazione viene eseguita correttamente:
    codice:
    Select id from prova WHERE nome='"+cerca+"'
    Gli uomini, non avendo potuto guarire la morte, la miseria, l'ignoranza, hanno risolto, per vivere felici, di non pensarci.

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Create table dinamicamente

    Originariamente inviato da inc40
    Sì sono sicuro, anche perchè questa interrogazione viene eseguita correttamente:
    codice:
    Select id from prova WHERE nome='"+cerca+"'
    Eh ma lì è una cosa diversa! È la quotazione di un valore di tipo stringa. Un'altra cosa è la quotazione di un identificatore, quale il nome di una tabella, di un campo ecc...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it L'avatar di inc40
    Registrato dal
    Sep 2004
    Messaggi
    319

    Re: Re: Re: Re: Create table dinamicamente

    Originariamente inviato da andbin
    Eh ma lì è una cosa diversa! È la quotazione di un valore di tipo stringa. Un'altra cosa è la quotazione di un identificatore, quale il nome di una tabella, di un campo ecc...
    Grandi andbin e LeLe, senza quotazione funziona!! Bravi

    Grazie
    Gli uomini, non avendo potuto guarire la morte, la miseria, l'ignoranza, hanno risolto, per vivere felici, di non pensarci.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.