일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- API
- 코로나
- 오류
- 라이엇
- 파이썬
- map
- 마커클러스터
- geopandas설치
- 지도
- Python
- 라이엇api
- 인코등
- Folium
- pipwin
- 막대그래프
- kepler
- QGIS라벨링
- 오픈API
- covid
- geopnadas
- matplotlib
- covid19
- OSMnx
- 공공데이터포털
- riotapi
- 에러
- geopandas에러
- kepler.gl
- r
- 시각화
- Today
- Total
Nerdy
Python과 R을 이용한 Oracle SQL 접근 본문
Oracle SQL 작업을 파이썬과 R에서 작업을 할 수 있도록 설정하는 방법이다.
Tool Version
Python : 3.9.7
Python IDE : PyCharm
R : 3.6.3
Oracle SQL 접근을 하기 위해 먼저 사전작업을 해준다.
1. C드라이브에 OracleTest 폴더 생성
2. OracleTest 폴더에 dirver ojdbc6 저장
ojdbc6,jar 파일을 찾는 방법은 다음과 같다.
C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
해당 경로를 복사한 뒤 ojdbc6,jar 파일을 복사하여 OracleTest 폴더에 붙여넣으면 된다. Oracle SQL 설치 당시 경로 default를 C드라이브로 설정하였으면 아마 찾을 수 있을 거다.
3. Oracle SQL scott 계정에서 table 생성
-- test table 생성
create table test_table(
id varchar(50) primary key,
pass varchar(30) not null,
name varchar(25) not null,
age number(2)
);
insert into test_table values('hong', '1234', '홍길동', 35);
insert into test_table values('kim', '5678', '김길동', 45);
select * from test_table;
commit;
1. R 연결하기
# R에서 Oracle SQL 연결
1. 패키지 설치
install.packages("rJava")
install.packages("DBI")
install.packages("RJDBC")
# 꼭 자바 path 설정 되어 있어야 한다.
# rJava 설치 안될 경우 아래 주석처리 된 코드 사용
# Sys.setenv(JAVA_HOME = "C:\\Program Files\\Java\\jdk1.8.0_311")
# install.packages("rJava")
2. 패키지 로딩
library(DBI)
library(rJava)
library(RJDBC)
# Drive 설정
drv <- JDBC("oracle.jdbc.driver.OracleDriver", "C:/OracleTest/ojdbc6.jar")
# 데이터베이스 연결
conn <- dbConnect(drv,"jdbc:oracle:thin:@//127.0.0.1:1521/xe", "scott", "tiger")
# SQL문 사용하여 잘 되는지 확인
# 테이블 조회
query = "select * from test_table"
dbGetQuery(conn, query)
# 내림차순 정렬
query = "SELECT * FROM test_table order by age desc"
dbGetQuery(conn, query)
# insert
query = "insert into test_table values('kang', '1234', '강감찬', 45)"
dbSendUpdate(conn, query)
# 수정된 레코드 조회
query = "select * from test_table where name = '강감찬'"
dbGetQuery(conn, query)
# name이 '홍길동'인 레코드 삭제
query = "delete from test_table where name = '홍길동'"
dbSendUpdate(conn, query)
2. Python 연결하기
# Oracle Instant Client 다운로드
Oracle Instant Client Downloads | Oracle 대한민국
해당 사이트 들어가서 'Instant Client fro Microsoft Windows (x64)' 클릭한 후 Basic Package version 다운로드하고 압축을 푼 파일을 C드라이브에 저장한다.
import cx_Oracle # 패키지 다운로드
import os
# 한글 지원 환경
os.putenv('NLS_LANG', '.UTF8')
# Path 설정
LOCATION = r"C:/instantclient_21_3"
os.environ["PATH"] = LOCATION + ";" + os.environ["PATH"]
# DB 연결
connect = cx_Oracle.connect("scott", "tiger", "localhost:1521/xe")
cs = connect.cursor()
사용하고 있는 파이참 IDE는 cx_Oracle 패키지 다운 받을 시 'cx-Oracle'를 입력해야 다운 받을 수 있다.
# SQL문 사용하여 잘 되는지 확인
# 데이터 추가(insert)
sql = "insert into py_table values('kang', '1234', '강감찬', 45)"
cs.execute(sql) # SQL 문
cs.execute("select * from py_table") # SQL 문
for i in cs: # data 보기
print(i)
# 전체 레코드 조회
sql = "select * from test_table"
cs.execute(sql)
for i in cs: # data 보기
print(i)
# name 이 '홍길동'인 레코드 삭제
sql = "delete from test_table where name = '홍길동'"
cs.execute(sql)
# 사용 후 close
cs.close()
connect.commit()
connect.close()
'SQL' 카테고리의 다른 글
MySQL 한글 인코딩 설정하기 (0) | 2022.10.27 |
---|---|
Oracle SQL 함수 정리 : 날짜 (0) | 2022.03.29 |
Oracle SQL 함수 정리 : 숫자 (0) | 2022.03.29 |
Oracle SQL : TRANSLATE와 REPLACE 함수 차이점 (0) | 2022.03.29 |
Oracle SQL 함수 정리 : 문자 (0) | 2022.03.29 |