J'essaie d'utiliser Python pour créer une table et insérez des valeursPython cx_Oracle option non valide
cur = con.cursor()
remove_table = '''
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE {}';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END;
'''
create_table_workclasses = '''
CREATE TABLE WORKCLASSES (
WORKCLASSES_NAME VARCHAR2(32) NOT NULL
)
'''
insert_workclasses = '''
INSERT ALL
INTO WORKCLASSES VALUES ('Private');
INTO WORKCLASSES VALUES ('Selfemp-inc')
INTO WORKCLASSES VALUES ('Federal-gov')
SELECT * FROM dual;
'''
cur.execute(remove_table.format('WORKCLASSES'))
cur.execute(create_table_workclasses)
cur.execute(insert_workclasses)
cur.close()
con.close()
Obtenir une erreur de
cur.execute(create_table_workclasses)
cx_Oracle.DatabaseError: ORA-00922: missing or invalid option
La chose est que la requête fonctionne très bien dans SQL Développeur!
Le caractère de nouvelle ligne peut affecter la requête dans 'create_table_workclasses'. '' \ nCLASSE WORKCLASSES (\ NWORKCLASSES_NAME VARCHAR2 (32) NOT NULL \ n) \ n'' 'NOT NULL \ n' est une option invalide. –
L'instruction create table fonctionne également très bien avec cx_Oracle, du moins pour autant que vous l'ayez affichée ici! Je n'ai pas de telles erreurs! –
Notez que vous avez un point-virgule supplémentaire dans la clause INSERT ALL –