ORACLE Spatial ungültiger Spaltenindex beim Import

JimK

Bekanntes Mitglied
Hallo,

ich bin am verzweifeln. Seit Stunden versuche ich ein Java Programm zu schreiben, dass mir Punkte in eine Geodatenbank importiert. Wenn ich es per Hand eingeben, dann funktioniert es, aber wenn ich es über mein Java Programm versuche kommt der Fehler "Ungültiger Spaltenindex" und ich finde einfach nicht meinen Fehler. ;(
Meine Quellcode sieht momentan wie folgt aus:

Java:
public void DATImport() throws ClassNotFoundException, SQLException, IOException
    {

 try{
        Connection con = ConnectDB();
               
        PreparedStatement pstmt_punkte = null;
               
       String sql_punkte = "INSERT INTO dat_tb "
                + "(pkt_id, pkt_art, zusatz, zeitstempel, point) "
                + "VALUES ("
                + "(SELECT MAX(pkt_id)+1 from dat_tb), "
                + "?, ?, to_date('?', 'dd.mm.yyyy hh24:mi:ss'), "
                + "?)";
        
        
        pstmt_punkte = con.prepareStatement(sql_punkte);
        
        File[] files = null;
        
        JFileChooser chooser = new JFileChooser();
        chooser.addChoosableFileFilter(new FileFilter() {
        public boolean accept(File f) {
        if (f.isDirectory()) return true;
        return f.getName().toLowerCase().endsWith(".dat");
        }
        public String getDescription () { return "DAT"; }  
        });
        chooser.setMultiSelectionEnabled(true);
        if (chooser.showOpenDialog(null) == 
                                JFileChooser.APPROVE_OPTION)
        {
            files = chooser.getSelectedFiles();
        }
       
//        JFileChooser fc = new JFileChooser();
//	    int returnVal = fc.showOpenDialog(null);
//
//	   if (returnVal == JFileChooser.APPROVE_OPTION)
//	    {
//	    	file=fc.getSelectedFile();
//	    }
         
    
        for(File file : files)
        {
           if(file != null)
           {

        FileReader fr = new FileReader(file);
        BufferedReader br = new BufferedReader(fr);
        int bytesRead =0,
            progress = 0;
        long length = file.length();
        
        float teiler = length / 100;
	status.setMaximum(Math.round(teiler));

        String line;
                              
        
        while ((line = br.readLine()) != null) {
            Messdaten a = new Messdaten(0,0, 0, 0, 0, 0, null);

            bytesRead = bytesRead + line.length();
            progress = bytesRead / 100;
            status.setValue(progress);

            StringTokenizer tok = new StringTokenizer(line, ";");
            String s1 = tok.nextToken();
            a.rw = Double.valueOf(s1.replace(',', '.'));
            String s2 = tok.nextToken().trim();
            a.hw = Double.valueOf(s2.replace(',', '.'));
            String s3 = tok.nextToken().trim();
            a.h = Double.valueOf(s3.replace(',', '.'));
            String s4 = tok.nextToken().trim();
            a.pkt_art = Integer.valueOf(s4);
            a.zeitstempel = tok.nextToken().trim();
            
            
            JGeometry geom = JGeometry.createPoint(new double[]{a.rw,a.hw,a.h}, 3, 31468);
           
            pstmt_punkte.setInt(1, a.pkt_art);
            pstmt_punkte.setInt(2, a.zusatz);
            pstmt_punkte.setString(3, a.zeitstempel);
            pstmt_punkte.setObject(4, JGeometry.store(geom,con));
            
            pstmt_punkte.execute();

        }
           
          status.setValue(Math.round(teiler)); 
           }
           
        }
        
    
        

        pstmt_punkte.close();
        con.close();
        

           }catch( Exception ex ) {
               System.out.println(ex);
               errorMassage(null, ex);
           }
    }

Erst habe ich das Statement so gebildet wie in der manuellen Eingabe und dann mit JGeometry. Bei beiden meckert er.
 
Zuletzt bearbeitet:

JimK

Bekanntes Mitglied
Ich habe meine Fehler gefunden.
Die ID vergabe funktioniert nicht und der Import für das Datum. :( Für das Datum habe ich leider noch keine Lösung gefunden.

Momentan wandle ich den String mit dem Datum zu einem SQLDate um, aber es funktioniert leider nicht. Es sagt mir, dass die Werte nicht ausreichen. ???:L

Ich versuche das Datumformat dd.MM.yyyy HH:mm:ss in die Oracle Datenbank zu importieren.
 
Zuletzt bearbeitet:

JimK

Bekanntes Mitglied
Ahhhhh.... ich habe mein Problem erkannt und die Lösung war so einfach....:mad:

Ich habe mich heute morgen wieder dazu entschlossen in mein SQL Statement ein to_date zu verwenden. Dabei ist mir etwas aufgefallen.

Java:
 String sql_punkte = "INSERT INTO dat_tb "
                + "(pkt_id, pkt_art, zusatz, zeitstempel, point) "
                + "VALUES ("
                + "(SELECT MAX(pkt_id)+1 from dat_tb), "
                + "?, ?, to_date('?', 'dd.mm.yyyy hh24:mi:ss'), "
                + "?)";

Ich versehe das Fragezeichen in to_date mit Hochkommas, aber füge dem Statement an dieser Stelle ein String hinzu. Ich versuche also aus einem String einen String zu machen. :( Nachdem ich die Hochkommas entfernt habe, hat es prima geklappt. Oh man...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JDK installieren Open JDK und Oracle Lizenzen Java Basics - Anfänger-Themen 13
J Mit OpenJDK entwickeln aber Oracle SE Runtime installieren? Java Basics - Anfänger-Themen 6
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
A JDK installieren Oracle JDK oder was anderes? Java Basics - Anfänger-Themen 6
H Pfad Program Files\Common Files\Oracle\Java\javapath Java Basics - Anfänger-Themen 3
N Oracle SQL mit Zwischenergebnis rechnen Java Basics - Anfänger-Themen 2
N Oracle SQL Anfrage. Problem Java Basics - Anfänger-Themen 2
M Frage bzgl. Oracle Java Zertifizierung Java Basics - Anfänger-Themen 4
J Oracle JDBC Driver funktioniert nur in einer Klasse Java Basics - Anfänger-Themen 2
A Oracle Verbindungsaufbau klappt nicht Java Basics - Anfänger-Themen 7
M OpenJDK und Oracle JDK proprieträre API Java Basics - Anfänger-Themen 11
? Oracle jpr runnable target Java Basics - Anfänger-Themen 2
alderwaran closed source jar, kein javadoc. was macht methode x eigentlich? ( oracle forms pjc beans ) Java Basics - Anfänger-Themen 2
J Oracle XE bekannt machen Java Basics - Anfänger-Themen 8
J Oracle Anbindung Java Basics - Anfänger-Themen 3
M Problem: JSP für Zugriff auf Oracle-Server/Datenbank - sinnvoll? Java Basics - Anfänger-Themen 35
A Oracle DB Java Basics - Anfänger-Themen 3
G Oracle SQL JDBC in Eclipse laden Java Basics - Anfänger-Themen 2
G Maven Dependency für Oracle JDBC-Driver korrekt festlegen Java Basics - Anfänger-Themen 4
G Verbindung zu einer Oracle DB aufbauen Java Basics - Anfänger-Themen 2
3 User erstellen / Oracle Content DB Java Basics - Anfänger-Themen 2
K Java Oracle getString() Java Basics - Anfänger-Themen 2
J JTable mit Oracle-Daten aus DB füllen Java Basics - Anfänger-Themen 6
E Oracle,Eclipse und zwei Javaversionen Java Basics - Anfänger-Themen 6
G Datenformate für Tabellendeklaration in einer ORACLE-DB Java Basics - Anfänger-Themen 2
D null über ein Integerfeld in ein Numberfeld in Oracle schrei Java Basics - Anfänger-Themen 5
A Oracle DB Abfrage Java Basics - Anfänger-Themen 18
M No suitable driver bei einer Oracle Datenbank Java Basics - Anfänger-Themen 9
O JDBC Ungültiger Spaltenindex Java Basics - Anfänger-Themen 19
S ungültiger Pfad bei der Installation von API documentation Java Basics - Anfänger-Themen 0
S SQL Exception"Ungültiger Spaltenindex" Java Basics - Anfänger-Themen 2
M createImage ungültiger Pfad registrieren Java Basics - Anfänger-Themen 2
M Frage zum Abfangen ungültiger Werte Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben