# -*- coding: utf-8 -*- import sys import io sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace') sys.path.insert(0, 'c:\\Users\\청춘약국\\source\\pharmacy-pos-qr-system\\backend') from db.dbsetup import get_db_session from sqlalchemy import text apc = '0230237010107' for db_name in ['PM_DRUG', 'PM_PRES', 'PM_BASE']: print(f'\n{"="*60}') print(f'=== {db_name} 데이터베이스에서 "{apc}" 검색 ===') print(f'{"="*60}') try: session = get_db_session(db_name) # 모든 테이블에서 해당 값 검색 tables = session.execute(text(""" SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' """)) for table_row in tables: table_name = table_row.TABLE_NAME # 각 테이블의 문자열 컬럼에서 검색 try: columns = session.execute(text(f""" SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{table_name}' AND DATA_TYPE IN ('varchar', 'nvarchar', 'char', 'nchar', 'text') """)) for col_row in columns: col_name = col_row.COLUMN_NAME try: result = session.execute(text(f""" SELECT TOP 1 * FROM [{table_name}] WHERE [{col_name}] = '{apc}' """)) row = result.fetchone() if row: print(f'\n★ 발견! {table_name}.{col_name}') print(f' 레코드: {dict(row._mapping)}') except: pass except: pass session.close() except Exception as e: print(f'Error: {e}') print('\n검색 완료!')