Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wstawić ramkę danych do nielegalnej/zmiennej wyroczni tabeli Oracle?

Możesz użyć df2.values.tolist w celu uzyskania listy parametrów i takiego kodu jak poniżej w celu wstawienia wartości w ramce danych :

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

gdzie

  • wolę używać executemany zamiast execute jako bardziej wydajny

  • utwórz sekwencję (seq_customer ) i dodaj do swojej listy wartości (seq_customer.nextval ) jak przy użyciu DB w wersji 11g, jeśli Twoja baza danych była w wersji 12c+, wtedy kolumna ID może być zidentyfikowana w instrukcji tworzenia tabeli ddl (np. podczas tworzenia tabeli ) takie jak

    ID INT generated always as identity primary key




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać ścieżkę tabeli hierarchii?

  2. Wywoływanie skryptu powłoki z PL/SQL, ale powłoka jest wykonywana jako użytkownik siatki, a nie wyrocznia

  3. ORA-02253:specyfikacja ograniczenia nie jest tutaj dozwolona

  4. Oracle — ORA-01489:wynik konkatenacji ciągów jest za długi

  5. Jak podzielić obiekt CLOB za pomocą i :separatora w Oracle na wiele rekordów?