NLS_DATA関連の備忘録
OracleXE
9月12
■機能概要
- バインド変数
- SQLに変数を埋め込むこと。条件値にバインド変数をセットすることで、Oracleに同一SQLと判断させハードパースの回数を減らすことが可能
バインド変数の定義方法:
:<変数名>
■利用方法
使用例:
SQL> conn scott/tiger; 接続されました。 SQL> SELECT TABLE_NAME FROM USER_TABLES; TABLE_NAME ------------------------------ SALGRADE BONUS EMP DEPT SQL> SELECT EMPNO FROM EMP; EMPNO ---------- 7369 7499 7521 7566 7654 7698 7782 7839 7844 7900 7902 7934 SQL> VAR v_empno NUMBER; SQL> EXECUTE :v_empno :=7369; PL/SQLプロシージャが正常に完了しました。 SQL> set linesize 120 SQL> SELECT * FROM emp WHERE empno = :v_empno; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- -------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 19801217 800 20
cx_Oracleインストール
- 前提パッケージをインストール
$ cat /etc/redhat-release CentOS Linux release 6.0 (Final) $ rpm -qa | grep -E 'gcc|python-devel' gcc-4.4.4-13.el6.x86_64 libgcc-4.4.4-13.el6.x86_64 python-devel-2.6.5-3.el6_0.2.x86_64 ※何も表示されない(インストールされていない)場合は下記コマンドを実行 $ sudo yum install gcc python-devel
- ダウンロード(最新版5.1)
$ cd /usr/local/src; pwd /usr/local/src $ wget http://sourceforge.net/projects/cx-oracle/files/5.1/cx_Oracle-5.1.tar.gz/download $ tar xfz cx_Oracle-5.1.tar.gz ; echo $? 0 $ ll -d /usr/local/src/cx_Oracle-5.1
- 環境変数
$ su - # . /home/oracle/.bash_profile # oracle用プロファイルの読み込み # echo $ORACLE_HOME /u01/app/oracle/product/11.2.0/xe # 定義されていること # echo $LD_LIBRARY_PATH /u01/app/oracle/product/11.2.0/xe/lib/:/lib:/usr/lib # 定義されていること
- インストール
# cd /usr/local/src/cx_Oracle-5.1; pwd /usr/local/src/cx_Oracle-5.1 # # python setup.py build running build running build_ext building 'cx_Oracle' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/u01/app/oracle/product/11.2.0/xe/rdbms/demo -I/u01/app/oracle/product/11.2.0/xe/rdbms/public -I/usr/include/python2.6 -c cx_Oracle.c -o build/temp.linux-x86_64-2.6-11g/cx_Oracle.o -DBUILD_VERSION=5.1 creating build/lib.linux-x86_64-2.6-11g gcc -pthread -shared build/temp.linux-x86_64-2.6-11g/cx_Oracle.o -L/u01/app/oracle/product/11.2.0/xe/lib -L/u01/app/oracle/product/11.2.0/xe -L/usr/lib64 -lclntsh -lpython2.6 -o build/lib.linux-x86_64-2.6-11g/cx_Oracle.so # python setup.py install running install running build running build_ext running install_lib copying build/lib.linux-x86_64-2.6-11g/cx_Oracle.so -> /usr/lib64/python2.6/site-packages running install_egg_info Writing /usr/lib64/python2.6/site-packages/cx_Oracle-5.1-py2.6.egg-inf
接続確認
Oracle環境設定
- ユーザ作成
SQL> create user HOGE 2 identified by passwd 3 default tablespace USERS 4 temporary tablespace TEMP; ユーザーが作成されました。 SQL> grant CONNECT,RESOURCE to HOGE; 権限付与が成功しました。 SQL> select GRANTEE,GRANTED_ROLE from dba_role_privs where GRANTEE='HOGE'; GRANTEE GRANTED_ROLE ------------------------------ ------------------------------ HOGE CONNECT HOGE RESOURCE
接続プログラム
- Oracle Versinonを表示させる簡易プログラム
$ vi conn.py #!/usr/bin/python # vim: fileencoding=utf-8 import cx_Oracle con = cx_Oracle.connect('HOGE/passwd@127.0.0.1/XE') print con.version con.close() $ chmod u+x ./conn.py $ ./conn.py 11.2.0.2.0
参考
cx_Oracleリンク集
Oracleのサポートページ
Using Python With Oracle Database 11g
Mastering Oracle+Python, Part 1: Querying Best Practices
Python cx_Oracle 5.0 New Features Overview
Mastering Oracle+Python, Part 3: Data Parsing
Mastering Oracle+Python, Part 4: Transactions and Large Objects
Mastering Oracle+Python, Part 5: Stored Procedures, Programming Python
Oracle-XEをCentOSにインストール
プロフィール
edworld
カテゴリ別アーカイブ
人気記事
記事検索
アクセスカウンター
- 今日:
- 昨日:
- 累計: