Oracle

データベースを削除して新規データベースを作成したら起動しなくなった

データベースを作り直す、というか削除してから新しいデータベースを作った。 DBCAを使ってデータベースorclを削除した。 DBCAを使ってデータベースiwd2を作成した。 するとインスタンスが起動しなくなってしまった。   最終的になおったが、試行錯誤したので、以下の順番はあくまで目安、ご参考までといったところ。    ■管理者でログインしてデータベースを起動する […]

Oracleを削除、アンインストールする

Solaris 10 にインストールしたOracle10gを再インストールするために削除することにした。   1. データベースを削除する。 2. Oracleソフトウェアを削除する。 3. 使わないディレクリやファイルを削除する。   ■データベースを削除する X Windowが使える環境で、dbcaを起動する。 日本語で表示したいときは、LANGを指定しておく。  […]

spfileを変更したら接続できなくなった

オペレーティング認証、conn / as sysdbaができない状態だったので、Oracleデータベース管理の教科書を参考に初期化パラメータを変更したら、connで接続できないし、startupもできない状態になってしまった。 元に戻す方法をメモしておいた。    ■初期化パラメータを変更した 初期化パラメータファイルのREMOTE_LOGIN_PASSWORDFILEパラメー […]

conn / as sysdba で接続できない | Oracle

オペレーティング・システム認証である conn / as sysdba で接続できない。なので、シェルでのdbstart、dbshutスクリプトコマンドも使えないので不便。 製品: Oracle Server – Enterprise Edition  製品バージョン: 10.2.0.3.0  プラットフォーム: Sun Solaris x86-64bit  […]

Oracleの実行結果をPHPで表示する

  WebページでSQLの結果を表示したいときがある。    ■SELECT結果を表示する EMPテーブルから、LAST_NAME列を取り出して一覧にする。 [‘LAST_NAME’] か [‘last_name’] か、大文字・小文字をきちんと指定する。 select.php <!DOCTYPE html PUB […]

Oracle 重複行を検索して削除する

重複行を削除したいケースがたまにある。 取り込んだマスターデータに重複があった インポートを2回行って、二重登録してしまった サンプル: 住所録テーブル ID   名前   電話       住所 1   阿部   03-1234-1234  東京 2   井上   03-5678-5678  東京 3   阿部   03-1234-1234 4   井上   03-5678-5678  […]

OracleからテキストTAB、CSVデータでエクスポートする-2

TSV、CSVで、エクスポートするためのSQL文を簡単に作る方法。 3列くらいの書き出しなら手書きが早い。 しかし、50列もあるような場合は、以下の方法でSQL文を組み立てる。   ■最終的に作りたいSQLを確認する  emp_export_tab.sql set echo off set heading off set termout off set pause off se […]

Oracleのバックアップスクリプト

いろいろなやり方があると思うが…とりあえずメモしておく。  (未完成記事ですよ) ■backup_ORCL.sql sqlを記述したファイルをviで作っておく。 set echo on set feedback on alter tablespace SYSAUX begin backup; host cp -f "/u02/oradata/ORCL/sysaux01.dbf […]

OracleからテキストTAB、CSVデータでエクスポートする-1

Oracleからテキストタブ形式やCSV形式でデータをエクスポートして書き出す。   ■Oracleからテキストタブファイルとしてエクスポートする テープル: emp 書き出す列: id, last_name, first_name, address 書き出す行: 全レコード  書き出し先のファイル名: ファイル名.txt      ■テキストタブ […]

Oracle XEのインストール後の初期状態

Oracle XEの初期状態をメモしておく。 SQLPLUSは、SYSTEMでログインしておく。   ■初期の状態 ディレクトリの確認 $ echo $ORACLE_HOME /usr/lib/oracle/xe/app/oracle/product/10.2.0/server   メモリ使用量の確認 SQL> show sga Total System Global A […]

Oracle8iからOracle10gへの引っ越し

Oracle8iからOracle10g XEへの引っ越しメモ。   ■データのエクスポートの前準備 キャラクタセットを確認しておく。EUCでエクスポートされることが分かる。 $ echo $NLS_LANG Japanese_Japan.JA16EUC   キャラクタセットをSJISでエクスポートしたいときはNLS_LANGを指定しておく。 $ export NLS_LANG= […]

Oracle XEのインストール

  MiracleLinux v3 にOracle XE(Oracle Database 10g Express Edition)をインストールしてみた。Oracle EXではなく XEなんだな。 RPMでインストールするだけなので、簡単だった。   ■ocssd.binを止めておく 以前にOracle10.1.0 をインストールしようとしたせいか、ps aux | grep […]

Oracle 別表(別テーブル)から値をコピーして一括更新する

別のテーブルからフィールドの値をコピーしてUPDATEしたいときがある。 郵便番号の一覧表から、都道府県をコピーする。などというときに使う。 UPDATE時に、SELECT結果を用いるというやり方で実施する。   ■別表からコピーして行を更新する  自分の住所録の住所欄に郵便番号リストの住所をコピーする。(全ての行を一括で更新)  SQL> UPDATE my_ […]

Oracleで表のコピーを作成する

副問い合わせを使用して、表のコピーを作成する。と同時に行の挿入を行う。つまり、テーブルをコピーすることになる。   ■別の表の行を使用して表を作成する  SQL> CREATE TABLE employee2 2 AS 3 SELECT * FROM employee ;   ■別の表の行を使用して表を作成する 列を選択して表をつくる。  SQL> […]

OracleのSQLコマンド

よく使うOracle8iのコマンドをメモ。Oracle10iでもほぼ同じ。 Oracle SQL*Plus編 Oracle 管理編 Oracle SQL編 Oracle エラー編         【SQL*Plus編】   ■シェルからSQL/PLUSを使う $ sqlplus /nolog   ■ログインする いくつかの方法がある。&n […]

JDBC接続できない原因

なんで、Oracle8iへJDBC接続できないんだろ…と悩んでいたが、原因発覚!なんとSIDの名前を間違えていたのだ。tnsnames.oraのSERVICE_NAMEと違うじゃないかー!! ■ソースはこれ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@192.168. […]

OracleのSQL*Plus便利もの

ちょっと便利なTips。SQLPlusは、奥が深いのであった。   ■表示する列の長さを変更 > COLUMN [列名] FORMAT [A10] ■CSVファイル出力 set echo off set heading off set termout off set pause off set pagesize 0 set linesize 500 set feedback off […]

Oracleで連番

連続した番号を自動的に生成して主キーに使用する。 <社員番号を自動生成> EMPテーブルに社員番号EMP_IDカラムがあるとする。 ■順序の作成 EMP_ID_SEQという名前の順序(シーケンス)を作る。 CREATE SEQUENCE emp_id_seq   START WITH 1   INCREMENT BY 1   NOCACHE ; NOCHACHEを指定 […]

SQL*Loader(sqlldr)でデータをまとめてインポート

データの移行など、たくさんあるデータをまとめてインポートするときに便利なのが、SQLローダー。 ■データをテキストTABで用意 お客様データとして、customer.txtとして準備する。 ■テーブルを作成 sqlplusなどで、テーブルを作成しておく。 ■ロードする仕組みをシェルスクリプトで用意 入れ物(テーブル)と入れるもの(データ)が準備できたので、どうやっていれるか(制御ファイル)を用意す […]

Oracleで小文字のテーブル名の扱い

ある業者さんが、テーブル名、フィールド名を小文字で作ったため、SQL*Plusを使うときの注意をメモした。 テーブル名をactual_userとする。 ■セレクト文の書き方 > SELECT "email" FROM "actual_user" ■SQL*Loader idは、「順序」から発行する。 login_nameは、C00173547のようにCを頭に8桁の数字。 regist_tim […]