このエントリは、JPOUGのadvent calendar 17日目の記事です。 DB2やSQL Server、Sybaseにできて、Oracle Databaseでできなかったことのひとつに問いあわせ結果のリストを戻すプロシージャを作れない、というものがあります。 SQL ServerやSybaseでは sp_help にお世話になっている方も多いでしょう。 Oracle Databaseの古くからの特徴として「SQLを使ってディクショナリを検索できる」というものがあります。この特徴があるがゆえに問いあわせ結果のリストを戻すプロシージャは不要だったのだと思います。 (余談ですが、Unixでは"ファイルによるI/Oの抽象化"がなされていますが、Oracle Databaseは"テーブル/VIEWによるI/Oの抽象化"が生真面目になされているといえるのではないでしょうか) とはいえ、Orac
SQL Server2008のCLRを久しぶりに使う機会があったので、メモ。 SQL ServerのCLRは、Oracleで言うところのJavaストアドのようなものです。 DB内にアセンブリを登録し、それをSQLの中から呼び出します。 通常のSQLや付属の関数だけでは賄いきれない機能を、.NETのアセンブリを通して実行できます。 私の場合は、たとえば、コミットに失敗した際にDB内からのメール送信したり、複雑な文字列処理をするために使っています。 0. つくるもの 私の場合は、コーディング自体は、VisualStudio2010を使います。 #昔Javaをかじった関係で、書くときは通常C#を使うのですが、恥ずかしながらクラスとか設計とかオブジェクト指向とかデザインパターン云々…は全く分からず、staticばっかりとか、かなり難があるのですが…。 コードはいずれということで、下記のようなものを
基礎からのPHPという書籍を読んでおりましたら、SQLインジェクションの攻撃例として、以下のSQL文ができあがる例が紹介されていました。PHP+PDO+MySQLという組み合わせです。 SELECT * FROM tb2 WHERE ban=1;delete from tb2 2つのSQL文がセミコロンで区切って1つにまとめられていますが、これを「複文(multiple statement)」と言います。私は、SQLインジェクション攻撃の文脈で複文が使える組み合わせを調べたことがあり、PHPとMySQLという組み合わせでは、複文は使えないと思っていましたので、この攻撃は成立しないのではないかと思いました。 しかし、決めつけも良くないと思い手元の環境で動かしてみたところ、あっさり動くではありませんか。 PDOを用いてMySQLを呼び出す場合は複文が実行できると気づきましたが、なぜPDOの場合
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く