sql >> Database >  >> RDS >> Oracle

Hoe voeg ik een dataframe toe aan een orakeltabel illegaal/variabel orakel?

U kunt df2.values.tolist . gebruiken om een ​​parameterlijst te krijgen, en een code zoals hieronder om de waarden in het dataframe in te voegen:

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()

waar

  • gebruik liever executemany in plaats van execute als beter presterend

  • maak een reeks (seq_customer ) en voeg toe aan uw lijst met waarden (seq_customer.nextval ) als het gebruik van DB-versie 11g, als uw database versie 12c+ was, dan zou de ID-kolom kunnen worden geïdentificeerd in de create table ddl-instructie (bijv. tijdens het maken van een tabel ) zoals

    ID INT generated always as identity primary key




  1. Meerdere joins in MySQL-tabel

  2. Strings splitsen:nu met minder T-SQL

  3. Verbinding maken met SQL Server-database vanuit Node.js

  4. SQL - Combineer twee tabellen met verschillende datumwaarde