Log.log(work)

いろんな作業メモ

Oracle

Oracleにダンプを入れてもらおうと頼んだら思いのほか大変だったはなし。

後輩に、コマンドを調べながら新規ユーザー(スキーマ)を作成してそこにダンプを入れてみて、と依頼したらいろいろ引っかかったのでその時のメモ。 環境:Windows10、Oracle11g 接続識別子が認識できないといわれる。 環境変数「ORACLE_SID」が設定されてい…

 PythonからOracleに接続し、データを登録&更新する

昨日の続き。 INSERTは複数行の登録が一度にできるけど、UPDATEは複数回execute呼ばないといけないらしい。 # Insert default rows rows = [(1, 'Bob', 35, 'I like dogs'), (2, 'Kim', 27, 'I like birds')] cur.bindarraysize = 2 cur.setinputsizes(int, …

オラクルにつないでデータを取得する

仕事で表題のスクリプトを作成することになったのでその時のメモ。 環境: Windows8.1 (64bit) / Anaconda (Python 3.6.4) / Oracle 11g Oracleに接続 cx_Oracleを使うと良いらしい。ということでOracle Clientも併せてインストール ※Anadondaのpipが古い場…

cursorの勘違いがなおらない

なんでかなぁ 変数の宣言が先 順序が違うとPLS-00320: この式の型の宣言が不完全か、または形式が誤っています。 となる wk_cd CHAR(02 CHAR) := '00'; CURSUR c1 IS SELECT cd_name FROM hoge WHERE cd = wk_cd ; c1_record c1%type; %NOTFOUNDはカーソル属…

NO_DATA_FOUNDとcount

countは常に1件の値が返ってくるので、NO_DATA_FOUNDで待ち構えても拾えないんだった。

暗黙カーソルと明示カーソル

カーソル カーソルには二種類あって、暗黙カーソルと明示カーソルに分かれる。 明示カーソル 明示的にOPEN~CLOSEするカーソル(そのまんま)。 OPEN c_1; FETCH c_1 INTO paramCd; CLOSE c_1; 暗黙カーソル 明示カーソル以外のすべてのSQL処理で内部的に使用…

oracleのNULL

oracleのNULLは扱いとしてはデカいので、 昇順でソートすると一番最後にくる。

oracleにつながっているか確認する簡単な方法

ユーザ ユーザによって環境変数は変わってくる。 今回、作ったユーザでoracleにつなぎに行こうとしたらできなかった。 確認方法としては、 sqlplus とたたくと変数がセットされてるとちゃんと立ち上がるが、設定がミスってると立ち上がらない。 メモ .bash_p…

関係演算子が無効です

と言われた。 SELECT * FROM HOGE WHERE (column1,column2) in (values('foo','001'),('hogehoge','002')) SQL : ORA-00920: 関係演算子が無効です。 in values ~ってoracleじゃつかえないんだっけか。 DB2とpostgresは使えたようなきが。 ========…

インポート/エクスポート

たまにやると忘れるのでめも。 エクスポート exp system/manager tables="tableName" log=exp_20141114_TBL.log file=exp_20141114_TBL.dmp インポート imp system/manager file=/home/hoge/backup/exp_20141114_TBL.dmp log=/home/hoge/backup/TBL.log tabl…