Oracle Streamlit Grid
- 오라클 + Streamlit + Pandas + Grid 파이썬 프로그램
import streamlit as st
import cx_Oracle
import pandas as pd
# 데이터베이스 연결 정보
USERNAME = 'dbcafe'
PASSWORD = 'password'
HOSTNAME = '127.0.0.1'
PORT = 1521
SERVICE_NAME = 'ORCL'
# DSN (Data Source Name) 구성
dsn_tns = cx_Oracle.makedsn(HOSTNAME, PORT, service_name=SERVICE_NAME)
# Streamlit 앱 제목 설정
st.title('Oracle Database Grid Example with Streamlit')
def fetch_data_from_oracle(query):
""" Oracle 데이터베이스에서 데이터를 가져오는 함수 """
try:
# 데이터베이스에 연결
connection = cx_Oracle.connect(user=USERNAME, password=PASSWORD, dsn=dsn_tns)
cursor = connection.cursor()
# 쿼리 실행
cursor.execute(query)
# 결과를 데이터프레임으로 변환
columns = [desc[0] for desc in cursor.description]
data = cursor.fetchall()
df = pd.DataFrame(data, columns=columns)
# 연결 닫기
cursor.close()
connection.close()
return df
except cx_Oracle.DatabaseError as e:
st.error(f"Database error: {e}")
return pd.DataFrame()
# 쿼리 입력
query = st.text_area("Enter SQL Query", "SELECT * FROM all_tables")
# 데이터 가져오기 및 그리드로 출력
if st.button('Fetch Data'):
if query.strip():
df = fetch_data_from_oracle(query)
if not df.empty:
st.dataframe(df)
else:
st.write("No data available or query failed.")
else:
st.write("Please enter a valid SQL query.")