如何在 Python 数据帧中使用预言机序列 - Python (Pandas)

How to use oracle sequence in Python dataframe - Python (Pandas)

提问人:sara moradi 提问时间:8/16/2022 最后编辑:sara moradi 更新时间:8/29/2022 访问量:188

问:

我在预言机中有一个序列,我想用它来将我的数据从 Python 中的数据帧插入到预言机数据库中。我已经在预言机中有一个我想使用的序列。

我下面有一个 python 数据帧,我想将特定列视为“ID”,以便放置序列:

编号 名字 神经网络
1 萨拉 1234
2 米娜 6547

我已经在预言机中有一个序列,我称之为“SQ_test”

PS:我找到了如何创建序列,但我不知道如何使用它或在我的熊猫数据框中使用它。 这是我可以使用的功能:

def get_change_id():

   id = cursor.var(cx_Oracle.NUMBER)

   sql_query_sq = """
       BEGIN 
          :next_id := SQ_TEST.nextval; 
       END; 
   """

   cursor.execute(sql_query, {"next_id":id})

   change_id = id.getvalue()

   return change_id
Python Oracle 数据帧 序列

评论

0赞 Connor McDonald 8/16/2022
您可以简单地在构建的 INSERT 语句中引用它,即插入 XXX ( id, name, nn) 值 ( sq_text.nextval, :val1, :val2);
0赞 sara moradi 8/16/2022
我的 seq 在 Oracle 中,但我的表在 Pandas Dataframe 中
0赞 Christopher Jones 8/17/2022
考虑使用触发器在数据库中执行序列逻辑。或者使用较新的语法 CREATE TABLE mytable (name VARCHAR2(10), nn NUMBER, id NUMBER(11) GENERATED BY DEFAULT ON NULL AS IDENTITY(START WITH 1))。使用这些解决方案,您的 Pandas 代码只需要处理插入 NAME 和 NN 值,因为 ID 列将自动从序列中更新。

答:

0赞 sara moradi 8/29/2022 #1

我找到了一种通过创建表格来创建序列的方法,之后每当我想插入我的序列时,都会自动创建序列并将其插入到它们的列中。 如何: 当我在考虑列的类型时创建表格时,我还写下了序列创建,如下所示:

CREATE TABLE TABLE_NAME
(
 ID NUMBER(38,0) generated by default as identity primary key,
 ...
);

我们需要注意的是,在将数据插入表之前,序列将继续,但如果我们想重新启动序列,则需要删除表。