【发布时间】:2018-05-01 00:49:36
【问题描述】:
在我的项目中,我使用 cx_Oracle 从 oracle 数据库收集数据,然后我需要将 cx_Oracle 游标的结果与我有模型的 SQLite 数据库中的数据进行比较。
我有以下代码可用于添加缺少的参数:
def GetParams(self):
repo_params = Parameters.objects.filter(dbid=self.dbid).only('name','value')
sql = ("select name, value from v$parameter")
self.cur.execute(sql)
res = self.cur.fetchall()
repo_params = list(repo_params)
parameters = []
for i in res:
if i[1] not in repo_params:
new_param = Parameters(name=i[1],value=i[2])
parameters.append(new_param)
if len(parameters) > 0:
Parameters.objects.bulk_create(parameters)
但我真正想做的是将我的 SQLite 数据库中的现有内容与光标中的内容合并。如果存在具有不同值的现有参数,那么我需要更新其值。如果是新参数,则需要创建。做这个的最好方式是什么?我应该使用 RAW sql 进行 MERGE 吗?
谢谢
【问题讨论】:
标签: django django-queryset cx-oracle