Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie füge ich einen Datenrahmen in ein illegales/variables Orakel einer Orakeltabelle ein?

Sie können df2.values.tolist verwenden um eine Parameterliste zu erhalten, und einen Code wie unten, um die Werte in den Datenrahmen einzufügen:

import pandas as pd
import cx_Oracle
conn = cx_Oracle.connect('un/[email protected]:port/dbname')

try:
    cursor = conn.cursor()
    df2 = pd.DataFrame({'names':['Pepe','Luis'], 'stages': [0,1], 'order': [3, 2]}) 
    col_list = df2.values.tolist()

    cursor.prepare("INSERT INTO customer_prf(names,label,type,id,n_stage,ctry,\"order\") VALUES(:1,'references','text',seq_customer.nextval,:2,2,:3)")
    cursor.executemany(None,col_list)
    print("executed!")
except Exception as err:
    print('Error', err)
else:
    conn.commit()

wo

  • bevorzuge die Verwendung von executemany statt execute als leistungsstärker

  • Erstellen Sie eine Sequenz (seq_customer ) und zu Ihrer Werteliste hinzufügen (seq_customer.nextval ) als Verwendung von DB Version 11g, wenn Ihre Datenbank Version 12c+ war, dann könnte die ID-Spalte innerhalb der DDL-Anweisung zum Erstellen einer Tabelle identifiziert werden (z. B. während der Tabellenerstellung). ) wie zum Beispiel

    ID INT generated always as identity primary key