VB.netとの関係
- OracleClientは必須ではない
Oracle.ManagedDataAccess 使えばOracleクライアントなしでDB接続できる
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 DB | Oracle 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

- 各テーブルのカラム数を求める
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 DB | JDBC Driver | Jarファイル | 対応JDK |
| 11gR2 (11.2) | JDBC 11.2 | ojdbc6.jar | JDK6~8 |
| 12cR1 (12.1) | JDBC 12.1 | ojdbc7.jar | JDK7~8 |
| 12cR2 (12.2) | JDBC 12.2 | ojdbc8.jar | JDK8 |
| 18c | JDBC 18.x | ojdbc8.jar | JDK8~11 |
| 19c | JDBC 19.x | ojdbc8.jar / ojdbc10.jar | JDK8~21 |
| 21c | JDBC 21.x | ojdbc8.jar / ojdbc11.jar | JDK8~19 |
| 23ai / 26ai | JDBC 23.x / 26.x | ojdbc8.jar / ojdbc11.jar / ojdbc17.jar | JDK8~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 にあります
設定
- Access で、Oracleのテーブルをみる。 データソースにODBCでOracleとの接続設定を作ってからAccessでテーブルリンク。
http://www.venus.dti.ne.jp/~yoshi-o/RDB/Oracle-Access-NewTableMake.html
http://www.atmarkit.co.jp/fwin2k/win2ktips/346dbaccess/dbaccess.html
ダウンロード先
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系
その他
