Ich benutze Python mit Cx_Oracle, um mit Oracle 11g zu arbeiten.Einfache Tabellenerstellung sql funktioniert für mysql und postgre, aber berichtete Fehler in oracle
Ich habe folgende SQL-Arbeit gut mit MySQL/PostgreSQL,
stock_info_create = 'CREATE TABLE STOCK_INFO(' + \
'CODE VARCHAR2(255) NOT NULL,' + \
'NAME VARCHAR2(255) NOT NULL,' + \
'TIMETOMARKET VARCHAR2(255),' + \
'PRIMARY KEY (CODE)' + \
');'
Und die zurückgegebene Nachricht war
(cx_Oracle.DatabaseError) ORA-00911: invalid character
[SQL: 'CREATE TABLE STOCK_INFO(CODE VARCHAR2(255) NOT NULL,NAME VARCHAR2(255) NOT NULL,TIMETOMARKET VARCHAR2(255),PRIMARY KEY (CODE));']
Natürlich Diese SQL für Oracle zu verwenden, die ich VARCHAR zu VARCHAR2 da ich geändert dachte der Fehler wurde durch falschen Datentyp verursacht. Aber nach dem Wechsel zu VARCHAR2 funktionierte es immer noch nicht.
Ein weiteres Problem ist auch bei der Tabellenerstellung.
stock_h_create = 'CREATE TABLE STOCK_H_NONE(' + \
'CODE VARCHAR(16) NOT NULL,' + \
'DATE DATE,' + \
'OPEN FLOAT,' + \
'HIGH FLOAT,' + \
'CLOSE FLOAT,' + \
'LOW FLOAT,' + \
'VOLUME FLOAT,' + \
'AMOUNT FLOAT,' + \
'AUTYPE VARCHAR(16),' + \
'LAST_UPDATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,' + \
'PRIMARY KEY (CODE,AUTYPE,DATE)' + \
');'
Die zurückgegebene Nachricht war
Creating table STOCK_H_NONE... (cx_Oracle.DatabaseError) ORA-00904: : invalid identifier
[SQL: 'CREATE TABLE STOCK_H_NONE(CODE VARCHAR(16) NOT NULL,DATE DATE,OPEN FLOAT,HIGH FLOAT,CLOSE FLOAT,LOW FLOAT,VOLUME FLOAT,AMOUNT FLOAT,AUTYPE VARCHAR(16),LAST_UPDATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (CODE,AUTYPE,DATE));']
Ich schätze jede Art von Hilfe und Ihren Besuch.
Danke für Ihre Hilfe. Ich habe versucht, NAME in etwas anderes wie SNAME zu ändern, aber es wird immer die gleiche Fehlermeldung zurückgegeben. Außerdem kopiere ich die sql-Abfrage in der Fehlermeldung direkt in sql-developer und führe sie aus. Die Tabelle wurde erfolgreich erstellt. Gibt es andere mögliche Probleme? – Kulbear
Versuchen Sie, das Semikolon in der Zeichenfolge loszuwerden - das kann den Fehler "ungültiges Zeichen" verursachen. –
Sie sind jetzt der Superstar lol. Fehler sind weg. Das ist so komisch, als ich in der Schule war, benutzten wir python2.7 mit cx_Oracle, in diesem Moment brauchte es das Semikolon ... – Kulbear