행위

Oracle streamlit grid

DB CAFE

Dbcafe (토론 | 기여)님의 2024년 8월 21일 (수) 22:04 판 (새 문서: == Oracle Streamlit Grid == <source lang=python> import streamlit as st import cx_Oracle import pandas as pd # 데이터베이스 연결 정보 USERNAME = 'dbcafe' PASSWORD = 'clcl...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
thumb_up 추천메뉴 바로가기


Oracle Streamlit Grid[편집]

import streamlit as st
import cx_Oracle
import pandas as pd

# 데이터베이스 연결 정보
USERNAME = 'dbcafe'
PASSWORD = 'clcl'
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.")