Oracle

Last-modified: 2026-07-21 (火) 12:49:43
amazon.gif

 VB.netとの関係

 VB6との関係

OO4Oは、Oracle11の32bitまでしか対応してない

 エラー/対処策

  • [ORAエラー] ORA-00923: FROMキーワードが指定の位置にありません
    SQL文から「FROM」が抜けている.またはタイプミス
    カラム名を区切る「,」(カンマ)が抜けている
 

 Oracle(クライアントインストール推奨設定)

■ 推奨(ほぼ入れる)

Oracle Net(必須)
OCI(必須)
SQL*Plus
Oracle ODBC Driver

■ 理由

SQL*Plus:接続確認やトラブル対応で必須級
ODBC:Excel・BI・ODBC接続でほぼ使う

用途別の追加オプション
必要に応じて追加してください。

★用途追加するもの★

用途追加するもの
.NETアプリOracle Data Provider for .NET
OLE DBOracle Provider for OLE DB
Java(Thick)Oracle JDBC/OCI
バッチ/大量データData Pump / SQL*Loader
セキュリティ(Walletなど)Advanced Security
LDAP連携Oracle Internet Directory Client

 何らかのサービスを追加でインストールするやり方

例:後で、SQL Plusを追加する方法

【手順(推奨:既存Clientに追加)】
※Oracle 11g (例: 11.2.x) 32bit が既に入っている前提

同一バージョンのクライアントインストーラを準備(setup.exe)

既存と同じバージョン(例: 11.2.0.4)のメディアを使用
バージョン不一致は不具合の原因になるため重要

setup.exe を起動 →「カスタム(Custom)」を選択

新規インストールではなく「既存Oracle Homeに追加」

コンポーネント選択で

「Oracle SQL*Plus」を選択
必要に応じて「Oracle Net」なども確認

インストール先は既存の

既存のインストールされているディクトリーのパスに変更する事。
例:ORACLE_HOME = C:\ユーザ名\product\11.2.0\client_1
例:ORACLE_HOME = C:\oracle\product\11.2.0\client_1

インストール完了後、確認

 SQL*Plus(設定)

sql*plusを起動する
ユーザ名を、ユーザ名@接続名

OK例

ユーザー名を入力してください: scott@ora92
パスワードを入力してください: tiger

参考(SQL*Plusメモ(Hishidama's sqlplus for Oracle9i Memo))

OK例2

sqlplus ユーザー名/パスワード@接続名

NG例

ユーザー名を入力してください: scott
パスワードを入力してください: tiger
ERROR:
ORA-12154: TNS: サービス名を解決できませんでし
※ 原因:サービス名(接続名)の指定がないから!

OK例3 IP指定

sqlplus ユーザー名/パスワード@//IPアドレス:1521/接続名

scott/tiger@//192.168.1.100:1521/orclpdb

 SQL*Plus(バッチファイルからSQL plusで接続する方法)

sqlplus ユーザー名/パス**ド@//IPアドレス:ポート番号/サービス名

例 sqlplus TestID/TestPassWord@//172.16.118.200:1521/TestDB

 SQL*Plus(よく使う機能)

出力をファイル保存

SPOOL result.txt
SELECT * FROM emp;
SPOOL OFF

 SQL(設定)

  • バージョン確認
    Select * from v$version;
  • テーブル 一覧取得
    SELECT TABLE_NAME FROM USER_TABLES;
  • テーブル (テーブル一覧+推定レコード数)
    SELECT TABLE_NAME,NUM_ROWS,LAST_ANALYZED FROM USER_TABLES ORDER BY TABLE_NAME;
  • テーブル の項目名取得
    DESC テーブル名;
  • インデックスの一覧
    select * from user_ind_columns;
  • インデックスの一覧(テーブル指定)
    select column_name from user_ind_columns where table_name = '表名';
  • ユーザ一覧
    select username from user_users;
  • パスワードバージョンの調べ方
    SELECT username,password_versions FROM   dba_users WHERE  username = 'SCOTT';

実行例

USERNAME  PASSWORD_VERSIONS
--------- -----------------
SCOTT     11G 12C
  • 文字コード調べ方(文字コードはOracleサーバ全体になるスキーマごとの設定はできない!)
    SELECT  * FROM NLS_DATABASE_PARAMETERS WHERE  PARAMETER='NLS_CHARACTERSET';

実行結果の例:
JA16SJISTILDE → シフトJIS
スクリーンショット 2026-06-22 142302.png

  • 各テーブルのカラム数を求める
    SELECT
       table_name,
       num_rows
    FROM
       all_tables
    ORDER BY
       table_name;
  • 各テーブルのカラム数を求める
    ※ キャッシュ情報のため、リアルタイムの値ではない
    SELECT
       TABLE_NAME,
       COUNT(*) AS ColumnCount
    FROM
       ALL_TAB_COLUMNS
    GROUP BY
       TABLE_NAME
    ORDER BY
       TABLE_NAME

 プロシージャ名を取得する)

SELECT OWNER,
      OBJECT_NAME
FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'PACKAGE'
 AND OWNER = 'N0001'
ORDER BY OBJECT_NAME;

 SQL(応用)

  • 結合
    SELECT  TR.*,
           S.FirstName,
           S.LastName
    FROM    TestResult AS TR
               LEFT JOIN Student AS S
                   ON TR.StudentID = S.StudentID
    WHERE   TestID = 2;
  • 日付書式(to_char)
    select to_char(Date1,'yyyy/mm/dd') from Table1
  • 日付(1か月前のデータ)
    Select * From Table1 Where KousinBi > ADD_MONTHS(SYSDATE, -1)
    参考

 SQL(場合分け)

select
 Syinabango,
 CASE
          -- JYUGCODEをTO_CHARで文字列に変換する
          WHEN t.DELFLG = 0 THEN '在席'
          WHEN t.DELFLG = 1 THEN '退職済'
       ELSE ''
      END AS 状況
From SyainTable

 完全アンインストール

http://otndnld.oracle.co.jp/document/products/as10g/101310/windows/B31910-02/deinst.htm

 JDBC Java ドライバ

※ 注意:AI生成

Oracle DBJDBC DriverJarファイル対応JDK
11gR2 (11.2)JDBC 11.2ojdbc6.jarJDK6~8
12cR1 (12.1)JDBC 12.1ojdbc7.jarJDK7~8
12cR2 (12.2)JDBC 12.2ojdbc8.jarJDK8
18cJDBC 18.xojdbc8.jarJDK8~11
19cJDBC 19.xojdbc8.jar / ojdbc10.jarJDK8~21
21cJDBC 21.xojdbc8.jar / ojdbc11.jarJDK8~19
23ai / 26aiJDBC 23.x / 26.xojdbc8.jar / ojdbc11.jar / ojdbc17.jarJDK8~25

 ODBC設定

前提:ODBCを呼び出すデータベース連携ソフトと関連。OracleClinetが32bitなら32bit,64bitなら64bitのODBC接続の設定をする

Windows 11でOracle ODBC(32bit)設定手順

  • ① ODBCデータソース管理ツールの起動(32bit版)
    キーボードで Win + R を押して「ファイル名を指定して実行」を開く
    以下を入力して実行:
    C:\Windows\SysWOW64\odbcad32.exe
  • ② Oracle ODBCドライバーの確認
    「システムDSN」タブを開く
    「追加」をクリック
    「Oracle in OraClient11g_home1」など、OracleのODBCドライバーが表示されていることを確認
  • ③ 新しいDSNの作成

「Oracle in OraClient11g_home1」を選択して「完了」
以下の情報を入力:

Data Source Name(DSN名):例)OracleODBC
TNS Service Name:tnsnames.ora に定義された接続名(例:ORCL)
User ID:Oracleのユーザー名(例:scott)

※ tnsnames.ora は通常 C:\app\<ユーザー名>\product\11.2.0\client_1\network\admin にあります

 設定

 ダウンロード先

Microsoft Windows(x64)64ビット用Oracle Instant Client | Oracle 日本

ダウンロードの参考
・Oralce19でODBC接続する場合、ODBC PackageとBasicPackageの両方が必要!
・SQL *plusが必要な場合、SQL*Plus Packageが必要!

A5:SQL Mk-2 - フリーのSQLクライアント/ER図作成ソフト (松原正和)
SQL文をたたくなら、こちらがてっとろ早い!

 その他

  • OracleからのダウンロードはIEを使うFireFoxだと失敗することが多い。
    FireFox対応でないのか?

Tips

GUIツール

  • A5:SQL Mk-2 - フリーの汎用SQL開発環境/ER図ツール
    複雑化するデータベース開発を支援するために開発されたフリーのSQL開発環境です。
    高機能かつ軽量で、使い方が分かりやすいことを目標に開発されています。
    SQLを実行したり、テーブルを編集するほかに、SQLの実行計画を取得したり、ER図を作成したりすることが出来ます

 参考

 参考書籍

サイト内リンク

開発

SQL SERVER

その他のDB系

OS系

その他