Commit 852ec9f6 authored by Erly Villaroel's avatar Erly Villaroel

Cambios en Cleaning.py

parent 1b1d0f08
...@@ -62,19 +62,19 @@ def validate_clean(control_params: Dict[str, Any], provider: str, timezone: str, ...@@ -62,19 +62,19 @@ def validate_clean(control_params: Dict[str, Any], provider: str, timezone: str,
def clean(command: str, intern_conn): def clean(command: str, intern_conn):
delete_t = False
delete_p = False
engine = intern_conn.engine engine = intern_conn.engine
tablename = command tablename = command
with engine.connect() as conn: # with engine.connect() as conn:
result_t = bool(intern_conn.check_table(tablename, conn)) # result_t = bool(intern_conn.check_table(tablename, conn))
result_p = bool(intern_conn.check_procedure(tablename, conn)) # result_p = bool(intern_conn.check_procedure(tablename, conn))
if result_t: # if result_t:
logger.info(f"Borrando tabla {tablename}") # logger.info(f"Borrando tabla {tablename}")
delete_t = delete_table(tablename, engine) # delete_t = delete_table(tablename, engine)
elif result_p: # elif result_p:
logger.info(f"Borrando procedure {tablename}") # logger.info(f"Borrando procedure {tablename}")
# delete_p = delete_procedure(tablename, engine)
delete_p = delete_procedure(tablename, engine) delete_p = delete_procedure(tablename, engine)
delete_t = delete_table(tablename, engine)
if delete_t: if delete_t:
logger.info(f"Borrado correctamente la tabla {tablename}") logger.info(f"Borrado correctamente la tabla {tablename}")
elif delete_p: elif delete_p:
......
import logging import logging
import time import time
from typing import List from typing import List
import re
logger = logging.getLogger() logger = logging.getLogger()
...@@ -58,7 +58,7 @@ def delete_procedure(procedure: str, engine) -> bool: ...@@ -58,7 +58,7 @@ def delete_procedure(procedure: str, engine) -> bool:
start_time = time.time() start_time = time.time()
with engine.connect() as conn: with engine.connect() as conn:
try: try:
proc = procedure.replace("(", "").replace(")", "") proc = re.match(r'([^(]+)', procedure).group(1)
check_query = f"SELECT object_name FROM all_procedures WHERE object_name = '{proc.upper()}'" check_query = f"SELECT object_name FROM all_procedures WHERE object_name = '{proc.upper()}'"
result = conn.execute(check_query) result = conn.execute(check_query)
exists = bool(result.fetchone()) exists = bool(result.fetchone())
......
...@@ -2,7 +2,7 @@ from typing import List, Tuple ...@@ -2,7 +2,7 @@ from typing import List, Tuple
from sqlalchemy import create_engine from sqlalchemy import create_engine
import oracledb import oracledb
import re
from enums.DatabaseDialectEnum import DatabaseDialectEnum from enums.DatabaseDialectEnum import DatabaseDialectEnum
from enums.DatabaseTypeEnum import DatabaseTypeEnum from enums.DatabaseTypeEnum import DatabaseTypeEnum
from components.Databases.Enums.OracleDataTypeEnum import OracleDataTypeEnum from components.Databases.Enums.OracleDataTypeEnum import OracleDataTypeEnum
...@@ -90,6 +90,7 @@ class Oracle: ...@@ -90,6 +90,7 @@ class Oracle:
def generate_sql_procedure(self, command: str, reserved_word: str = "execute") -> str: def generate_sql_procedure(self, command: str, reserved_word: str = "execute") -> str:
response = "" response = ""
try: try:
logger.info("COMANDO",command)
command = command.replace(reserved_word, "").replace(";", "") command = command.replace(reserved_word, "").replace(";", "")
response = f"BEGIN {command}; END;" response = f"BEGIN {command}; END;"
logger.debug("COMANDO ORACLE:", response) logger.debug("COMANDO ORACLE:", response)
...@@ -113,7 +114,7 @@ class Oracle: ...@@ -113,7 +114,7 @@ class Oracle:
def check_procedure(self, procedure_name, connection) -> bool: def check_procedure(self, procedure_name, connection) -> bool:
exists = False exists = False
try: try:
procedure_name = procedure_name.replace("(", "").replace(")", "") procedure_name = re.match(r'([^(]+)', procedure_name).group(1)
check_query = f"SELECT object_name FROM all_procedures WHERE object_name = '{procedure_name.upper()}'" check_query = f"SELECT object_name FROM all_procedures WHERE object_name = '{procedure_name.upper()}'"
result = connection.execute(check_query) result = connection.execute(check_query)
exists = bool(result.fetchone()) exists = bool(result.fetchone())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment