Enviar pesquisa
Carregar
本当にあった怖い話し (やきに駆動 2.0)
•
Transferir como PPTX, PDF
•
1 gostou
•
1,963 visualizações
O
Oda Shinsuke
Seguir
やきに駆動 2.0 〜日本よ、これがHoge駆動だ〜 http://atnd.org/events/31268
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 22
Baixar agora
Recomendados
本当にあった怖い話し Db編
本当にあった怖い話し Db編
Oda Shinsuke
Wpfと非同期
Wpfと非同期
yone64
freee社でのReactiveCocoa活用例
freee社でのReactiveCocoa活用例
yo_waka
Reactive Extensions v2.0
Reactive Extensions v2.0
Yoshifumi Kawai
Kubernetesできること
Kubernetesできること
iPride Co., Ltd.
B lack jumbodog 運転と改造のすすめ
B lack jumbodog 運転と改造のすすめ
Shinichi Hirauchi
明日から使える Java SE 7
明日から使える Java SE 7
Yuichi Sakuraba
構築手順 Ssis イベントログ取込み 第2版
構築手順 Ssis イベントログ取込み 第2版
junichi anno
Recomendados
本当にあった怖い話し Db編
本当にあった怖い話し Db編
Oda Shinsuke
Wpfと非同期
Wpfと非同期
yone64
freee社でのReactiveCocoa活用例
freee社でのReactiveCocoa活用例
yo_waka
Reactive Extensions v2.0
Reactive Extensions v2.0
Yoshifumi Kawai
Kubernetesできること
Kubernetesできること
iPride Co., Ltd.
B lack jumbodog 運転と改造のすすめ
B lack jumbodog 運転と改造のすすめ
Shinichi Hirauchi
明日から使える Java SE 7
明日から使える Java SE 7
Yuichi Sakuraba
構築手順 Ssis イベントログ取込み 第2版
構築手順 Ssis イベントログ取込み 第2版
junichi anno
Gwt1
Gwt1
katsu.taira
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
Tusyoshi Matsuzaki
分子系統樹推定に適した配列データセットの作成 実習編
分子系統樹推定に適した配列データセットの作成 実習編
astanabe
PostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQL
Noriyoshi Shinoda
Webサーバ勉強会 (160-162:?)
Webサーバ勉強会 (160-162:?)
Yuuki Namikawa
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
Shinichi Hirauchi
Node-v0.12の新機能について
Node-v0.12の新機能について
shigeki_ohtsu
実践 Reactive Extensions
実践 Reactive Extensions
Shin Ise
Web講座 第9回
Web講座 第9回
nanametown
Stream2の基本
Stream2の基本
shigeki_ohtsu
おもにEXcelだけで出来る自動化技術
おもにEXcelだけで出来る自動化技術
Takanobu Mizuta
Bat jscrpt powershell
Bat jscrpt powershell
Naoyuki Sano
Cloud computing competition by Hapyrus
Cloud computing competition by Hapyrus
Koichi Fujikawa
RxJava on Android
RxJava on Android
yo_waka
Rakuten tech conf
Rakuten tech conf
Koichi Fujikawa
Clojrue 13 testing
Clojrue 13 testing
Kiyotaka Kunihira
Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義
JPCERT Coordination Center
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
SQLQL とは!?
SQLQL とは!?
yancya
Babelfish Compatibility
Babelfish Compatibility
Noriyoshi Shinoda
20141129-dotNet2015
20141129-dotNet2015
Takayoshi Tanaka
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Masayuki Ozawa
Mais conteúdo relacionado
Mais procurados
Gwt1
Gwt1
katsu.taira
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
Tusyoshi Matsuzaki
分子系統樹推定に適した配列データセットの作成 実習編
分子系統樹推定に適した配列データセットの作成 実習編
astanabe
PostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQL
Noriyoshi Shinoda
Webサーバ勉強会 (160-162:?)
Webサーバ勉強会 (160-162:?)
Yuuki Namikawa
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
Shinichi Hirauchi
Node-v0.12の新機能について
Node-v0.12の新機能について
shigeki_ohtsu
実践 Reactive Extensions
実践 Reactive Extensions
Shin Ise
Web講座 第9回
Web講座 第9回
nanametown
Stream2の基本
Stream2の基本
shigeki_ohtsu
おもにEXcelだけで出来る自動化技術
おもにEXcelだけで出来る自動化技術
Takanobu Mizuta
Bat jscrpt powershell
Bat jscrpt powershell
Naoyuki Sano
Cloud computing competition by Hapyrus
Cloud computing competition by Hapyrus
Koichi Fujikawa
RxJava on Android
RxJava on Android
yo_waka
Rakuten tech conf
Rakuten tech conf
Koichi Fujikawa
Clojrue 13 testing
Clojrue 13 testing
Kiyotaka Kunihira
Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義
JPCERT Coordination Center
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
SQLQL とは!?
SQLQL とは!?
yancya
Mais procurados
(19)
Gwt1
Gwt1
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
分子系統樹推定に適した配列データセットの作成 実習編
分子系統樹推定に適した配列データセットの作成 実習編
PostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQL
Webサーバ勉強会 (160-162:?)
Webサーバ勉強会 (160-162:?)
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
Node-v0.12の新機能について
Node-v0.12の新機能について
実践 Reactive Extensions
実践 Reactive Extensions
Web講座 第9回
Web講座 第9回
Stream2の基本
Stream2の基本
おもにEXcelだけで出来る自動化技術
おもにEXcelだけで出来る自動化技術
Bat jscrpt powershell
Bat jscrpt powershell
Cloud computing competition by Hapyrus
Cloud computing competition by Hapyrus
RxJava on Android
RxJava on Android
Rakuten tech conf
Rakuten tech conf
Clojrue 13 testing
Clojrue 13 testing
Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
SQLQL とは!?
SQLQL とは!?
Semelhante a 本当にあった怖い話し (やきに駆動 2.0)
Babelfish Compatibility
Babelfish Compatibility
Noriyoshi Shinoda
20141129-dotNet2015
20141129-dotNet2015
Takayoshi Tanaka
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Masayuki Ozawa
T sql の parse と generator
T sql の parse と generator
Oda Shinsuke
T sql 振り返り
T sql 振り返り
Oda Shinsuke
Apache Torqueについて
Apache Torqueについて
tako pons
VS勉強会 .NET Framework 入門
VS勉強会 .NET Framework 入門
kamukiriri
Sql server data store data access internals
Sql server data store data access internals
Masayuki Ozawa
Ll xcode
Ll xcode
Net Kanayan
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのか
yancya
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
Preferred Networks
Handlersocket 20110517
Handlersocket 20110517
akirahiguchi
Hadoop jobbuilder
Hadoop jobbuilder
Taku Miyakawa
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
stomita
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜
Michitoshi Yoshida
PostgreSQL Conference Japan 2021 B2 Citus 10
PostgreSQL Conference Japan 2021 B2 Citus 10
Noriyoshi Shinoda
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
JavaLearning_1.pptx
JavaLearning_1.pptx
RyuuGaku
Rpscala2011 0601
Rpscala2011 0601
Hajime Yanagawa
転置インデックスとTop k-query
転置インデックスとTop k-query
正志 坪坂
Semelhante a 本当にあった怖い話し (やきに駆動 2.0)
(20)
Babelfish Compatibility
Babelfish Compatibility
20141129-dotNet2015
20141129-dotNet2015
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
T sql の parse と generator
T sql の parse と generator
T sql 振り返り
T sql 振り返り
Apache Torqueについて
Apache Torqueについて
VS勉強会 .NET Framework 入門
VS勉強会 .NET Framework 入門
Sql server data store data access internals
Sql server data store data access internals
Ll xcode
Ll xcode
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのか
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
Handlersocket 20110517
Handlersocket 20110517
Hadoop jobbuilder
Hadoop jobbuilder
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜
PostgreSQL Conference Japan 2021 B2 Citus 10
PostgreSQL Conference Japan 2021 B2 Citus 10
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
JavaLearning_1.pptx
JavaLearning_1.pptx
Rpscala2011 0601
Rpscala2011 0601
転置インデックスとTop k-query
転置インデックスとTop k-query
Mais de Oda Shinsuke
SQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdf
Oda Shinsuke
What's hyperscale
What's hyperscale
Oda Shinsuke
Dot net+sql server tips
Dot net+sql server tips
Oda Shinsuke
Sql server 2019 ざっくり紹介
Sql server 2019 ざっくり紹介
Oda Shinsuke
Spark on sql server?
Spark on sql server?
Oda Shinsuke
SQL Server のロック概要
SQL Server のロック概要
Oda Shinsuke
Blazor 触ってみた
Blazor 触ってみた
Oda Shinsuke
Linux + PHP でも SQL Server
Linux + PHP でも SQL Server
Oda Shinsuke
グラフデータベースの話し
グラフデータベースの話し
Oda Shinsuke
Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介
Oda Shinsuke
Sql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベース
Oda Shinsuke
Transaction scopeまだダメ
Transaction scopeまだダメ
Oda Shinsuke
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!
Oda Shinsuke
2016年を振り返って
2016年を振り返って
Oda Shinsuke
Sql world とは
Sql world とは
Oda Shinsuke
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り
Oda Shinsuke
Sql world とは
Sql world とは
Oda Shinsuke
Ms build 触ってみよう
Ms build 触ってみよう
Oda Shinsuke
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
Oda Shinsuke
Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介
Oda Shinsuke
Mais de Oda Shinsuke
(20)
SQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdf
What's hyperscale
What's hyperscale
Dot net+sql server tips
Dot net+sql server tips
Sql server 2019 ざっくり紹介
Sql server 2019 ざっくり紹介
Spark on sql server?
Spark on sql server?
SQL Server のロック概要
SQL Server のロック概要
Blazor 触ってみた
Blazor 触ってみた
Linux + PHP でも SQL Server
Linux + PHP でも SQL Server
グラフデータベースの話し
グラフデータベースの話し
Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介
Sql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベース
Transaction scopeまだダメ
Transaction scopeまだダメ
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!
2016年を振り返って
2016年を振り返って
Sql world とは
Sql world とは
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り
Sql world とは
Sql world とは
Ms build 触ってみよう
Ms build 触ってみよう
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介
本当にあった怖い話し (やきに駆動 2.0)
1.
本当にあった怖い話し DB 編
2012/10/27 やきに駆動2.0 SQLWorld お だ
2.
自己紹介 織田 信亮(おだ しんすけ) 大阪で開発者しています SQLWorld
の代表です http://d.hatena.ne.jp/odashinsuke/ Twitter:@shinsukeoda
3.
SQLWorld とは http://sqlworld.org/ Twitter:@SQLWorld_JP 次のような情報を発信しているコミュニ ティです
MS の RDBMS である「SQL Server」 もちろん他の DB の話しも! 正規化/モデリング SQL/NoSQL
4.
注意書き 特定の製品を挙げているように見えます が、最近よく使ってるからだけで他意は ありません! 体験談で公式資料は見つけれてません!
5.
本当にあった怖い話し_DB 編 その1:システム要件を満たしているの に動かない! その2:バインド変数が動かない! その3:トランザクションが異なる?!
6.
ODP.NET 4 がシステム要件を満たしている のに動かない http://docs.oracle.com/cd/E16338_01/win.112/b66456/I nstallSystemRequirements.htm#i1006191
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; class
Program { 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; class
Program { 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.
バインド変数に長い文字列を指定すると動 かない 某9i で発生!
10g, 11g では発生せず バインド変数の値が 2000文字(ASCII) 以 上の物が複数存在するとエラーが発生 ORA-01461: LONG値はLONG列にのみバインドできま す。
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.
バインド変数に長い文字列を指定すると動 かない 回避策
9i を使わない クエリ内で文字列結合を行い、1バインド変 数の文字数が大きくならないようにする
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.
ストアド内で複数回呼び出しているファン クションのトランザクションが異なる 11g で発生
非常に複雑なストアド内で同じファンク ションを何回も参照している時に発生 cursor 共通テーブル式 with cte as (select ~) window 関数 sum() over (partition by ~) union all
16.
ストアド内で複数回呼び出しているファン クションのトランザクションが異なる cursor と
共通テーブル式を辞めても発 生 window 関数か union all を辞めると発 生しなかった window 関数と union all を使ったシン プルなストアドだと発生しなかった 再現するミニマムクエリを発見出来ず…
17.
サンプルクエリの説明 FOO テーブル
マスタテーブル BAR_FUNC FOO.HOGE_KBN が ‘1’ はエラー発生 FOO.HOGE_KBN が ‘2’ はエラーなし ZOO_PROCEDURE FOO、BAR_FUNC を参照 トランザクションテーブルを更新 FOO テーブルは更新しない
18.
-- 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’ なのにエラー発生!! /
19.
ストアド内で複数回呼び出しているファン クションのトランザクションが異なる BAR_FUNC 内で、FOO
テーブルのデータを 確認してみると… エラーが起きる時は、何故か更新前のデー タを参照している トランザクション内のデータが見れていない
20.
ストアド内で複数回呼び出しているファン クションのトランザクションが異なる 回避策
window 関数は削れなかったので、union all を諦めて、2つのクエリに分けた。 本当に回避出来てるのか不明。 原因を探れていないので、本当に発生しないのか は不明。 テストでは再現しなかった。
21.
まとめ 変な書き方してるクエリを見つけても、 バカにしない! テストは大事! 意味の分からない事象にぶち当たっても 泣かない!
22.
ご清聴ありがとうございました
Baixar agora