Corrige insercao de JSON grande no Oracle usando CLOB
This commit is contained in:
@@ -15,6 +15,8 @@ class RankingOracleRepository:
|
|||||||
Insere ou atualiza um batch de consultores usando MERGE.
|
Insere ou atualiza um batch de consultores usando MERGE.
|
||||||
Retorna o número de registros processados.
|
Retorna o número de registros processados.
|
||||||
"""
|
"""
|
||||||
|
import cx_Oracle
|
||||||
|
|
||||||
if not consultores:
|
if not consultores:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@@ -31,7 +33,7 @@ class RankingOracleRepository:
|
|||||||
:componente_d AS COMPONENTE_D,
|
:componente_d AS COMPONENTE_D,
|
||||||
:ativo AS ATIVO,
|
:ativo AS ATIVO,
|
||||||
:anos_atuacao AS ANOS_ATUACAO,
|
:anos_atuacao AS ANOS_ATUACAO,
|
||||||
:json_detalhes AS JSON_DETALHES
|
TO_CLOB(:json_detalhes) AS JSON_DETALHES
|
||||||
FROM DUAL
|
FROM DUAL
|
||||||
) s
|
) s
|
||||||
ON (t.ID_PESSOA = s.ID_PESSOA)
|
ON (t.ID_PESSOA = s.ID_PESSOA)
|
||||||
@@ -64,6 +66,8 @@ class RankingOracleRepository:
|
|||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
try:
|
try:
|
||||||
for consultor in consultores:
|
for consultor in consultores:
|
||||||
|
json_str = json.dumps(consultor.get("detalhes", {}), ensure_ascii=False)
|
||||||
|
cursor.setinputsizes(json_detalhes=cx_Oracle.CLOB)
|
||||||
params = {
|
params = {
|
||||||
"id_pessoa": consultor["id_pessoa"],
|
"id_pessoa": consultor["id_pessoa"],
|
||||||
"nome": consultor["nome"],
|
"nome": consultor["nome"],
|
||||||
@@ -74,7 +78,7 @@ class RankingOracleRepository:
|
|||||||
"componente_d": consultor["componente_d"],
|
"componente_d": consultor["componente_d"],
|
||||||
"ativo": "S" if consultor["ativo"] else "N",
|
"ativo": "S" if consultor["ativo"] else "N",
|
||||||
"anos_atuacao": consultor["anos_atuacao"],
|
"anos_atuacao": consultor["anos_atuacao"],
|
||||||
"json_detalhes": json.dumps(consultor.get("detalhes", {}), ensure_ascii=False)
|
"json_detalhes": json_str
|
||||||
}
|
}
|
||||||
cursor.execute(merge_sql, params)
|
cursor.execute(merge_sql, params)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user