More Related Content
PPTX
PPTX
PDF
分子系統樹推定に適した配列データセットの作成 実習編 PPTX
Windows Store App HTTP通信を振り返る PDF
PDF
PDF
PDF
CR5とJavaScriptによるウェブアプリの作り方 What's hot
PDF
PDF
PDF
PPTX
PDF
awk v.s. bashどっちが強い?@OSC2011Tokyo PDF
第3回Webkit/HTML5勉強会 - File APIと加速度センサー PDF
PDF
PDF
PDF
Lisp batton - Common LISP PDF
Javaセキュアコーディングセミナー東京第3回講義 PDF
PDF
PDF
実はとれました。System xhrでcsv形式のopen dataを取得する PDF
PDF
菩薩でもわかる!Rで動かすExcelアドインの作り方 PDF
Node.js Error & Debug Leveling PDF
Viewers also liked
PPTX
PDF
PDF
PPTX
MySQLメインの人がPostgreSQLのベンチマークをしてみた話 PDF
PDF
地方エンジニアがPostgreSQLを通じて成長した話 PPTX
PDF
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 PDF
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell Similar to 本当にあった怖い話し Db編
PPTX
ActiveRecordで複雑なクエリを書くのは間違っているのか PDF
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決 PDF
PDF
Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) - KEY
activerecord-oracle_enhanced-adapterのご紹介 PPTX
Qlik ReplicateにおけるExpression Builderの利用方法 PDF
はまる!!JPA #glassfish_jp #javaee PDF
20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]... PPTX
PPTX
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜 PPTX
PDF
PPTX
Database, Polymorphism and Modern C++ PDF
PPTX
PDF
PDF
PDF
SQLQL は GraphQL にとってなんなのか PDF
PDF
More from Oda Shinsuke
PDF
SQL Server2022_PSPoptimization_pub.pdf PDF
PDF
PDF
PDF
PPTX
PDF
PDF
Linux + PHP でも SQL Server PPTX
PPTX
PPTX
Sql server 2017 からはじめる graph データベース PPTX
PPTX
PPTX
PPTX
開発者の方向けの Sql server(db) t sql 振り返り PPTX
PPTX
PPTX
Sql server2014復習とsqlserver2016の紹介 PPTX
Sql server sql database 最新機能紹介 PPTX
本当にあった怖い話し Db編
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
ODP.NET 4 がシステム要件を満たしている
のに動かない
実行環境
Windows XP SP3
.NET Framework 4 Client Profile
.NET 2系は未インストール
ODP.NET 4
標準の Widows Update は適用済み
.NET 3.5 SP1 は除く
例外発生!!
- 8.
using System;
using Oracle.DataAccess.Client;
classProgram {
static void Main(string[] args) {
try {
Console.WriteLine(typeof(string).Assembly.FullName);
Console.WriteLine(typeof(OracleConnection).Assembly.FullName);
var connStr = “~";
using (var conn = new OracleConnection(connStr))
using (var cmd = new OracleCommand(@"select SYSDATE from dual", conn)) {
conn.Open();
Console.WriteLine(cmd.ExecuteScalar());
}
} catch (Exception e) {
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
Console.ReadKey();
}
}
- 9.
using System;
using Oracle.DataAccess.Client;
classProgram {
static void Main(string[] args) {
try {
Console.WriteLine(typeof(string).Assembly.FullName);
例外発生!
Console.WriteLine(typeof(OracleConnection).Assembly.FullName);
var connStr = “~";
using (var conn = new OracleConnection(connStr))
using (var cmd = new OracleCommand(@"select SYSDATE from dual", conn)) {
--------------------------------------------------------------------------------
conn.Open();
mscorelib, Version=4.0.0.0, ...
Console.WriteLine(cmd.ExecuteScalar());
Oracle.DataAccess, Version=4.112.3.0, ...
}
'Oracle.DataAccess.Client.OracleConnection' type iniitalize
} catch (Exception e) {
Console.WriteLine(e.Message);
error ....
Console.WriteLine(e.StackTrace);
--------------------------------------------------------------------------------
}
Console.ReadKey();
}
}
- 10.
ODP.NET 4 がシステム要件を満たしている
のに動かない
回避策 (どれか一つでOK)
Windows Update から .NET 3.5 SP1 をイン
ストール
C++ の再頒布可能パッケージ をインストー
ル
http://www.microsoft.com/ja-jp/download/details.aspx?id=5638
OTN Discussion Forums
ODP.NET4 required .NET2.0?
https://forums.oracle.com/forums/thread.jspa?thr
eadID=2423728&stqc=true
- 11.
- 12.
create table TEST(
PK number(3,0) not null primary key,
CONTENT1 varchar2(4000),
CONTENT2 varchar2(4000),
CONTENT3 varchar2(4000)
)
/
insert into TEST values (:PK, :CONTENT1, :CONTENT2, :CONTENT3)
/
drop table TEST
/
結果 CONTENT1 CONTENT2 CONTENT3
NG 4000文字 4000文字 4000文字
NG 2000文字 2000文字 0文字
OK 1999文字 2000文字 1999文字
OK 1999文字 4000文字 1999文字
- 13.
- 14.
create table TEST(
PK number(3,0) not null primary key,
CONTENT1 varchar2(4000),
CONTENT2 varchar2(4000),
CONTENT3 varchar2(4000)
)
/
insert into TEST values (
:PK,
:CONTENT1_1 || :CONTENT1_2 || :CONTENT1_3 || :CONTENT1_4,
:CONTENT2_1 || :CONTENT2_2 || :CONTENT2_3 || :CONTENT2_4,
:CONTENT3_1 || :CONTENT3_2 || :CONTENT3_3 || :CONTENT3_4
)
/
drop table TEST
/
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
サンプルクエリの説明
FOO テーブル
マスタテーブル
BAR_FUNC
FOO.HOGE_KBN が ‘1’ はエラー発生
FOO.HOGE_KBN が ‘2’ はエラーなし
ZOO_PROCEDURE
FOO、BAR_FUNC を参照
トランザクションテーブルを更新
FOO テーブルは更新しない
- 22.
FOO テーブルのデータ BAR_FUNC との関係
HOGE_KBN
‘1’ エラー
‘2’ エラーなし
BAR_FUNC では検証用に
RAISE_APPLICATION_ERROR
を使ってエラーを発生させている
- 23.
-- FOO.HOGE_KBN =‘1’ はエラー発生、’2’ はエラー発生せず
update FOO set HOGE_KBN = '1'
/
commit
/
select BAR_FUNC(~) from dual -- FOO.HOGE_KBN = ‘1’ なのでエラー発生
/
update FOO set HOGE_KBN = '2'
/
select BAR_FUNC(~) from dual -- FOO.HOGE_KBN = ‘2’ なのでエラー発生せず
/
rollback
/
call ZOO_PROCEDURE (~) -- FOO.HOGE_KBN = ‘1’ なのでエラー発生
/
update FOO set HOGE_KBN = '2'
/
call ZOO_PROCEDURE (~) -- FOO.HOGE_KBN = ‘2’ なのにエラー発生!!
/
- 24.
- 25.
- 26.
- 27.
- 28.