[SQL, Oracle] Zeile einfügen

Status
Nicht offen für weitere Antworten.

Evolver

Bekanntes Mitglied
Also ich möchte in folgende Tabelle Zeilen einfügen:
Code:
CREATE TABLE  "FOLDER" 
   (
	"TABLEKEY" NUMBER(20,0), 
	"ID" VARCHAR2(255) NOT NULL ENABLE, 
	"NAME" VARCHAR2(255), 
	"OWNERFOLDERKEY" NUMBER(20,0), 
	"STATUS" VARCHAR2(6) NOT NULL ENABLE, 
	"EDITOR" VARCHAR2(20), 
	"EDIT_DATE" TIMESTAMP (6), 
	 CHECK (status IN ('INSERT','CHANGE', 'DELETE')) ENABLE, 
	 PRIMARY KEY ("TABLEKEY") ENABLE, 
	 CONSTRAINT "FOLDER_OWNERFOLDERKEY" FOREIGN KEY ("OWNERFOLDERKEY")
	  REFERENCES  "FOLDER" ("TABLEKEY") ENABLE
   )

Mein Einfügen könnte z.B. so aussehen:
Code:
INSERT INTO folder
   (tablekey, id, name, ownerfolderkey, status, editor, edit_date)
   VALUES 3, '2f3da0a0:1144ff979ce:-8000', 'MyMainFolder', NULL, 'INSERT', 'BA', 2007-08-10 15:32:03.671


Ich erhalte aber die Fehlermeldung:
ORA-00947: Anzahl der Werte reicht nicht aus

Versuche ich das INSERT direkt in der DB über das SQL-Interface einzugeben, werden ich aufgefordert, die "Bind-Variablen" einzugeben (das sind wohl die fehlenden Werte). Was sind diese Bind-Variablen und wie baue ich das in den INSERT-Befehl ein?
 
S

SlaterB

Gast
evtl fehlende Syntax:
statt
VALUES 3, ..
besser
VALUES (3, ..)

überhaupt: teste sowas erst mit EINEM Attribut, dann zwei usw.
 

abollm

Top Contributor
Evolver hat gesagt.:
Also ich möchte in folgende Tabelle Zeilen einfügen:
[..]
Mein Einfügen könnte z.B. so aussehen:
Code:
INSERT INTO folder
   (tablekey, id, name, ownerfolderkey, status, editor, edit_date)
   VALUES 3, '2f3da0a0:1144ff979ce:-8000', 'MyMainFolder', NULL, 'INSERT', 'BA', 2007-08-10 15:32:03.671


Ich erhalte aber die Fehlermeldung:
ORA-00947: Anzahl der Werte reicht nicht aus

Versuche ich das INSERT direkt in der DB über das SQL-Interface einzugeben, werden ich aufgefordert, die "Bind-Variablen" einzugeben (das sind wohl die fehlenden Werte). Was sind diese Bind-Variablen und wie baue ich das in den INSERT-Befehl ein?

Gib das folgende INSERT-Statement ein und es wird funktioieren:
Code:
INSERT INTO folder
(
      tablekey, 
      id, 
      name, 
      ownerfolderkey, 
      status, 
      editor, 
      edit_date
)
VALUES 
(
      3, 
      '2f3da0a0:1144ff979ce:-8000', 
      'MyMainFolder', 
      NULL, 
      'INSERT', 
      'BA', 
      TO_TIMESTAMP_TZ('2007-08-10 15:32:03.671','YYYY-MM-DD HH24:MI:SS.XFF')
)
/
 

Evolver

Bekanntes Mitglied
Letzters bring mich dem Ergebnis näher, aber folgender Fehler tritt auf:
ORA-01830: Datumsformatstruktur endet vor Umwandlung der gesamten Eingabezeichenfolge


// EDIT: OK, wenn ich das 'X' vor den Sekundenbruchteilen ('FF') weglasse, dann geht es. Wofür steht das X?
 

abollm

Top Contributor
Evolver hat gesagt.:
[..]
ORA-01830: Datumsformatstruktur endet vor Umwandlung der gesamten Eingabezeichenfolge

// EDIT: OK, wenn ich das 'X' vor den Sekundenbruchteilen ('FF') weglasse, dann geht es. Wofür steht das X?

X steht gemäß Oracle-Doku für "Local radix character"

Ich hatte auf meiner Oracle 9.2.0.7-Instanz keine Probleme mit dem obigen Statement. Dass du Probleme hattest, liegt vermutlich an deinem NLS_LANG-Parameter. Bei mir ist

american_america.WE8ISO8859P1

eingestellt.
 

Evolver

Bekanntes Mitglied
Hm, gibt es nur diese beiden Möglichkeiten:
Amerikanisch, mit X
Nicht-Amerikanisch, ohne X

Oder muss man eher sagen, das fehlende X ist eine deutsche (europäische) Spezialität?

===========================

In meine DB-Parametern ist alles auf GERMANY eingestellt. Aber beim Datumsformat sehen die Einstllungen wie folgt aus:
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT DD.MM.RR HH24:MI:SSXFF
NLS_TIMESTAMP_TZ_FORMAT DD.MM.RR HH24:MI:SSXFF TZR
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR

Da kommt überall das X vor, aber eben kein Punkt davor. Wie ist das denn nun genau?
 

abollm

Top Contributor
Mea culpa.

Ich hatte bisher mit unterschiedlichen Timezone-Parametern auch noch nicht herumgespielt

Das X steht -- so wie ich es bisher eruieren konnte (insbesondere aus Metalink) -- für den Dezimaltrenner; also in einer deutschen Einstellung für das Komma (,), während die Amerikaner dafür den Punkt (.) nehmen.

Mein Fehler war, dass ich in der folgenden (falschen) Zeile (s. auch oben)

Code:
TO_TIMESTAMP_TZ('2007-08-10 15:32:03.671','YYYY-MM-DD HH24:MI:SS.XFF')

nicht erkannt hatte, dass die ja bereits das X enthält. Somit war der Punkt davor vollkommen überflüssig. Das X ersetzt ja den Punkt! Das ergibt aber bei meinen NLS_LANG-Einstellungen keinen Fehler, während bei GERMAN_GERMANY der vor dir erwähnte Fehler kommt (konnte ich reproduzieren).

Hoffe, dass das nun klar ist. Tur mir leid, wenn ich dich offenbar verwirrt hatte.
 

Evolver

Bekanntes Mitglied
Somit war der Punkt davor vollkommen überflüssig. Das X ersetzt ja den Punkt! Das ergibt aber bei meinen NLS_LANG-Einstellungen keinen Fehler, während bei GERMAN_GERMANY der vor dir erwähnte Fehler kommt

Gut, also entweder [...]SSXFF oder [...]SS.FF
Sehe ich das jetzt richtig oder gibt es auch noch Alternativen wie [...]SS,FF ?

Ich finde es etwas komisch, dass das X ein allgemeines Trennzeichen (Punkt oder Komma) repräsentiert, aber bei der Sprach-/Formateinstellung GERMANY der Punkt "nicht kompatibel ist" mit dem X.
 

abollm

Top Contributor
Evolver hat gesagt.:
Gut, also entweder [...]SSXFF oder [...]SS.FF
Sehe ich das jetzt richtig oder gibt es auch noch Alternativen wie [...]SS,FF ?

Ich finde es etwas komisch, dass das X ein allgemeines Trennzeichen (Punkt oder Komma) repräsentiert, aber bei der Sprach-/Formateinstellung GERMANY der Punkt "nicht kompatibel ist" mit dem X.

Wie bereits aus dem vorhergehenden Post von mir zu erkennen, stellt X den Platzhalter für das Dezimaltrennzeichen dar. Wenn du aber fest ein Komma vorgeben möchtest, kannst du auf das automatische Erkennen und Einstellen gemäß NLS_LANG-Parameter auch verzichten. Das würde ich aber im professionellen Umfeld grundsätzlich vermeiden.

Du kannst also -- solltest es allerdings grundsätzlich nicht -- so etwas wie folgt machen:
Code:
      TO_TIMESTAMP_TZ('2007-08-10 15:32:12.345','YYYY-MM-DD HH24:MI,SSXFF')

Hth
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Oracle Zeile löschen Datenbankprogrammierung 2
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
S Den letzten Eintrag aus Datenbank ziehen (Oracle SQL Dev.) Datenbankprogrammierung 14
S Oracle DB-Connection in .jar file ändern Datenbankprogrammierung 11
D Oracle Gateway oder Relay-Server Datenbankprogrammierung 5
N Oracle SQL - Nächst kleineren Namen2 zu einem Namen aus einer Tabelle Datenbankprogrammierung 3
M Oracle SQL Zeitabstand in Tagen Datenbankprogrammierung 11
P Datenbank Tool - besser als oracle SQL Developer gesucht mit effizinte Verbindungsverwaltung Datenbankprogrammierung 2
X JPA (EclipseLink) und Oracle Datenbank Datenbankprogrammierung 2
H Oracle Resize eines Images in Java und Rückgabe des Image als BLOB an die Oracle Datebank Datenbankprogrammierung 14
H Java Class zum komprimieren von Jpeg-Images zum Einbinden in Oracle DB - Bild als blob (in und out) Datenbankprogrammierung 23
L Oracle Oracle Datumsspalte auslesen Datenbankprogrammierung 5
L Oracle Daten von Oracle zu MSSQL übertragen Datenbankprogrammierung 4
L LOAD DATA INFILE mit Oracle Datenbankprogrammierung 24
D Abfrage - Spalte(Datum) ändern (Oracle) Datenbankprogrammierung 7
L Oracle Datenbank über Java aufrufen Datenbankprogrammierung 29
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
I Datenbankverbindung Oracle DB klappt nicht - getConnection returned null Datenbankprogrammierung 8
R DB2 Oracle 12 - invalid username/passwort Datenbankprogrammierung 1
AssELAss Verbindung i5 Series 7.1 / 7.2 (DB2) mit Oracle SQL Developer Datenbankprogrammierung 3
C Von Oracle zu Couchbase Datenbankprogrammierung 1
E Was sind die Vorteile von DB2 im Gegensatz zu einer Oracle-Datenbank? Datenbankprogrammierung 5
R Oracle jdbc Zugriff auf Oracle Datenbankprogrammierung 2
B No suitable driver found for jdbc:oracle:thin:@$HOST:$PORT:$SID Datenbankprogrammierung 7
S Oracle Database 11g , eclipse , Tabelle erstellen Datenbankprogrammierung 2
0 JDBC Oracle Verbindungsaufbau Datenbankprogrammierung 6
Q Oracle Linux: ClassNotFoundException: oracle.jdbc.driver.OracleDriver Datenbankprogrammierung 6
F Oracle Oracle JDBC Anbindung unter Glassfish 3.1.2 Datenbankprogrammierung 3
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
Kenan89 Oracle passwortspalte Datenbankprogrammierung 2
Kenan89 Oracle Daten einer Tabelle in Array speichern Oracle Datenbankprogrammierung 10
S Problemme mit oracle Datenbankprogrammierung 13
H Oracle Hibernate + Oracle Datenbankprogrammierung 3
c_sidi90 JDBC Oracle Connection schlägt fehl Datenbankprogrammierung 2
D Oracle SQL Ergebnis anzeigen und Applet Fehlermeldung Datenbankprogrammierung 12
1 Java - Oracle Restore Point Datenbankprogrammierung 2
X Rollback mit Savepoint funktioniert auf Oracle nicht (ORA-01086) Datenbankprogrammierung 4
E Datenbankverbindung mit Oracle JDBC und Eclipse Plugin Quantum db Datenbankprogrammierung 2
M Kann Oracle Datenbanktreiber nicht laden Datenbankprogrammierung 5
F Performance-Tool für Oracle Datenbankprogrammierung 2
Dit_ Oracle Oracle DB | Installation Datenbankprogrammierung 3
T Datum anpassen in Oracle Datenbankprogrammierung 5
R Oracle Java -> Tomcat -> Oracle Datenbankprogrammierung 4
M Oracle Probleme mit dem anbinden einer Oracle 10g Datenbank Datenbankprogrammierung 27
H Oracle DBUnit/JUnit auf Oracle mit verschiedenen Schemata? Datenbankprogrammierung 8
G Stored Procedure in Oracle, Txt erzeugen Datenbankprogrammierung 9
G Auf Oracle Schema Name zugreifen Datenbankprogrammierung 7
G INSERT DATE in Oracle-DB Datenbankprogrammierung 11
J Oracle oder SQL-Server Datenbankprogrammierung 18
A Oracle Session Parameter per JDBC? Datenbankprogrammierung 14
Z [ORACLE] Ausgabe Tabelle im GUI Datenbankprogrammierung 4
S Oracle Trigger Datenbankprogrammierung 5
cosmic Problem beim Update einer Oracle DB Datenbankprogrammierung 7
L JDBC Oracle Datenbankprogrammierung 2
N Oracle DB liefert nicht alle Datensätze Datenbankprogrammierung 3
H Oracle - Indizes werden nicht genommen Datenbankprogrammierung 6
P Probleme mit Oracle Timestamp Datenbankprogrammierung 3
A Loader-Dateien in Oracle Datenbankprogrammierung 4
G Oracle DB Link Datenbankprogrammierung 3
padde479 Connection String Oracle Datenbankprogrammierung 5
S Oracle Abfrage mit Platzhaltern Datenbankprogrammierung 3
D Oracle Datenbank exportieren Datenbankprogrammierung 3
Q admin tool für oracle datenbank - freeware Datenbankprogrammierung 7
G Blob aus Oracle-Datenbank Datenbankprogrammierung 2
J jdbc Oracle Connection refused Datenbankprogrammierung 6
S Oracle JDBC Treiber Problem Datenbankprogrammierung 4
J Bild in Oracle Datenbank - Grundkurs Datenbankprogrammierung 7
M Verbindung zu Oracle DB Datenbankprogrammierung 4
G Float Problem Java Oracle Datenbankprogrammierung 4
O Vector als Blob in Oracle Datenbank speichern Datenbankprogrammierung 3
O Oracle 11g wirft bei 90 % der installation eine Exception ? Datenbankprogrammierung 5
W ID des letzten eingefügten Werts ermitteln (Oracle) Datenbankprogrammierung 4
ARadauer Date Problem bei Oracle DB Datenbankprogrammierung 4
R oracle Anbindung geht im jar nicht Datenbankprogrammierung 8
D Insert Oracle BLOB Datenbankprogrammierung 1
O Oracle Client Software für ojdbc5! Datenbankprogrammierung 1
Y ORACLE - Autoincrement funktioniert nicht Datenbankprogrammierung 2
E Ein If und ein SELECT in Oracle? Datenbankprogrammierung 2
M Problem mit SUBSTR (Oracle) bzw. substring (Java) Datenbankprogrammierung 13
J Fehler bei Oracle-Datenbankverbindung Datenbankprogrammierung 2
G Connection zu einer Oracle DB erstellen Datenbankprogrammierung 8
L Oracle: PL/SQL und Java Datenbankprogrammierung 3
K Oracle XE Connection Problem Datenbankprogrammierung 2
T INSERT-Befehl in Java für Oracle Datenbankprogrammierung 4
G Oracle-Record auslesen Datenbankprogrammierung 2
E JDBC Oracle Fehler, zugriff auf datenbank (Cluster) Datenbankprogrammierung 5
H Oracle - Partionierung von Tabellen Datenbankprogrammierung 4
H Oracle XE 10 mit Java Datenbankprogrammierung 4
B Oracle Driver Probleme Datenbankprogrammierung 2
R ResultSet liefert oracle.sql.TIMESTAMP, aber unbrauchbar Datenbankprogrammierung 9
thE_29 Speicherplatz von Oracle DB Datenbankprogrammierung 2
D Problem beim Zugriff auf eine Oracle-DB Datenbankprogrammierung 23
G Single Sign On bei Oracle Datenbankprogrammierung 3
E Jar File: NoClassDefFoundError: oracle/sql/ORAData Datenbankprogrammierung 2
H MIt oracle Verbinden (ungültiges Argument in Aufruf) Datenbankprogrammierung 4
W Wie auf Oracle zugreifen? Datenbankprogrammierung 3
R Oracle Express 10g mit JDBC Datenbankprogrammierung 3
N Wie kann ich mich mit Oracle verbinden? Datenbankprogrammierung 3
L oracle:ORA-01008: Nicht allen Variablen ist ein Wert zugeord Datenbankprogrammierung 1
G import Oracle.jdbc*; Datenbankprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben