条件をわけるDECODEの使い方 DECODEの構文 --DECODEで条件をわけてSELECTする SELECT DECODE(列名, 値1, 結果1, 値2, 結果2, 結果3) FROM table1; 「DECODE」では、指定した列の値によって異なる結果を返すことができます。
条件をわけるDECODEの使い方 DECODEの構文 --DECODEで条件をわけてSELECTする SELECT DECODE(列名, 値1, 結果1, 値2, 結果2, 結果3) FROM table1; 「DECODE」では、指定した列の値によって異なる結果を返すことができます。
1 クラスタ用Oracle Grid Infrastructureの標準インストール この章では、クラスタ用Oracle Grid Infrastructureの標準インストールと拡張インストールの違いについて説明し、さらに標準インストールを完了するために必要な手順について説明します。 この章の内容は次のとおりです。 標準インストールと拡張インストール 手作業を必要とするインストール前の手順 Oracle Grid Infrastructureソフトウェアのインストール 1.1 標準インストールと拡張インストール Oracle Grid Infrastructureのインストールには、2つのインストール・オプションがあります。 標準インストール: 標準インストール・オプションは、手動による構成選択の数が少ない、簡単なインストールです。ほとんどのクラスタ実装に、このインストール・タイプを選択
Oracle Database 11g Release 2 RAC On Windows 2008 Using VirtualBox This article describes the installation of Oracle Database 11g Release 2 (11.2.0.2.0) RAC on Windows 2008 Server Standard Edition using VirtualBox with no additional shared disk devices. Introduction Download Software VirtualBox Installation Virtual Machine Setup Guest Operating System Installation Oracle Installation Prerequisites
普段、SQLを書いていないとよく忘れるので備忘録。 escape句を利用することにより、アンダースコア(_)やパーセント(%)を検索文字列として指定できる。 SQL> select * from TBLNAME; ID STR ---------- ---------- 1 KONY 2 _KONY ←アンダースコアを含む文字列 SQL> select * from TBLNAME where STR like '_%'; ID STR ---------- ---------- 1 KONY ←アンダースコアは任意の1文字のためこれもヒットする。 2 _KONY SQL> select * from TBLNAME where STR like '#_%' escape '#'; ID STR ---------- ---------- 2 _KONY ←エスケープすることに
テーブルを作成/削除するSQL。 ・表を作成する(表領域を指定しない場合はデフォルト表領域に作成されます。)
想定読者 マテリアライズド・ビューという言葉を聞いたことはあるがその意味や仕組みを知らない方 集計処理を実現する一つの手段としてマテリアライズド・ビューを検討している方 マテリアライズド・ビューの実装にあたり必要な知識・注意点を把握したい方 前提 以降の記載は以下のDBMSの使用を前提としています。 Oracle Database 10g, 11g, 12c 集計処理という敵とマテリアライズド・ビューという武器 システム開発を進める中で、何らかの集計処理が必要になることが多々あると思います。 例えば、売上高の集計処理(地域ごと・店舗ごと・期間ごとなど)や、特定の条件を満たす顧客の集計処理(商品名◯×を購入した顧客の合計数など)などです。 SQLで集計処理を実装すればよいのですが、実際に実装してみると以下のような問題が生じることがあります。 集計処理が遅い(複数テーブルの結合などに起因する処
いやー、知らないって怖いね。 なんだこのキモいSQLは、って思ってしまったけど、調べているウチに、これちゃんとSQL構文に則ってる!こちらが間違ってた!って事がわかっていきました。 あえて、知らなかった所から勢いで書いていたのを、そのままにしてみました。 キモいSQLコードを偶然見つけた SQLにおけるORDER BYって、その後にカラム(およびそのエイリアス)を並べてソート順として使用するわけですが、MySQL案件のお仕事の中で偶然こんなものを見つけて、絵に描いたような二度見リアクションしました。 SELECT * FROM tbl ORDER BY id = 23; -- (1) SELECT * FROM tbl ORDER BY FIELD( id, 23, 234, 543, 23 ); -- (2)こうした、「ORDER BYに、あたかもWHERE句で絞り込む条件指定のような使
発生パターン このエラーは以下のような場合に発生します。 GROUP BY句があるSQLで、GROUP BYに指定していない列をSELECTに指定した。 対処法 GROUP BY句があるSQLでは、SELECT句に指定した列は、必ずGROUP BY句に含める (SUMやCOUNTなどの集計関数を使用した列は除く) --OKな例1 →SELECTの列とGROUP BY句の列が同じなのでOK。 SELECT col1, col2 FROM sampletable GROUP BY col1, col2; --OKな例2 →col2はGROUP BY句には含まれないが、集計関数で囲っているためOK。 SELECT col1, count(col2) FROM sampletable GROUP BY col1; --NGな例 →col2はGROUP BY句に含まれないのでNG。 SELECT c
ORA-1000はOPEN_CURSORSの設定値不足やアプリケーションのカーソル操作の誤りなどで発生するエラーです。 カーソルとはSELECT文などの処理に関する情報を格納するSQLのプライベート領域を示すポインタとして使われるものです。 (例えばカーソル名 CUR_A というものがあった場合、プログラム上でCUR_Aを指定することによって、CUR_Aに定義されているSQL文の取得結果などを操作することができます。) エラーメッセージ ORA-01000: 最大オープン・カーソル数を超えました。 ORA-01000 maximum open cursors exceeded. 発生原因 ORA-1000はカーソルオープンした数が、初期化パラメータOPEN_CURSORSの設定値を超えた場合に発生するエラーです。 データベース全体ではなく、1セッションでオープンが可能なカーソルの数である点
単体テストで躓く−y( ´Д`)。oO○ 検索・・・ オラクルでのエラー 『ORA-02289』|名古屋の隣で頑張るらいおん丸社長のブログ エラーコード: ORA-02289 内容: 順序が存在しません。 原因: 指定された文字列が存在しない ユーザーがこの操作を行うために必要な権限を持っていない 解決: SQLの確認 必要な操作を行うための権限を持っていることを確認 いやいや、これやった。 SEQNO.NEXTVAL なるほど、この環境にoracleシーケンスが無いのね。 勝手に作るよ。 参考↓ ORACLE/オラクルSQLリファレンス(SEQUENCE) create sequence SEQNO increment by 1 start with 1 maxvalue 999999999999999 デケタ シーケンスが作成されました(63 msec.)
CONVERT 関数の内容 変換する対象の文字列 string を 変換前の キャラクタセット source_charset から 変換後のキャラクタセット dest_charset に変更した文字列を戻す。 CONVERT 関数の追加説明と注意事項 変換文字に対応するコードポイントが存在しない場合にはクエスチョンマーク(クエッションマーク)(?) に変換される。 変換する対象の文字列 string にはラージオブジェクトも利用することが可能。 利用できる型は CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB、NCLOB の6つで LONG には使用できない。 注意 UTL_I18N パッケージの STRING_TO_RAW ファンクションは変換結果を RAW 型に代入するが CONVERT 関数は VARCHAR2 型として戻す。 文字化けする状態の VARCHAR2
phpとoracleを用いたシステムでwebサイトを構築しているのですが、 ブラウザからアクセスしページ表示した際に、全角文字が文字化けしてしまいます。 ◆環境 webサーバ:apache, php, oracleClient, PDO_OCI DBサーバ:oracle DBデータアクセス方法:PDO ◆事象の詳細 文字化けといっても必ず ???? とクエスチョン続きで表示されます。 上記webサーバのコマンドラインでphpのバッチを実行したところ、 コマンドライン上では正常に全角文字が表示されます。 まったく同じバッチをwebブラウザからhttpでアクセスを行ったところ、 文字化けしてしまいます。 ブラウザでの表示が悪いのではと思い、 phpのバッチ実行時に結果をテキスト出力させる処理を追加したのですが、 コマンドラインで実行した際は正常に出力され、ブラウザでアクセスした際は内容が文字化
phpでOracleにInsertした結果を表示するとORA-29275発生 SQL> select * from table_name; ERROR: ORA-29275: 不完全なマルチバイト文字です phpファイルはUTF-8でDBの文字コードがSJISという事で発生(と思う) ORA-29275 OracleDBで文字コード取得 SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET' JA16SJIS PHP側でエンコード処理 'テスト' ↓ mb_convert_encoding('テスト','SJIS','UTF-8')
oci_connect( string $username, string $password, ?string $connection_string = null, string $encoding = "", int $session_mode = OCI_DEFAULT ): resource|false 他のほとんどの OCI8 コールで必要な接続 ID を返します。 パフォーマンスを向上させるため、 ほとんどのアプリケーションは oci_connect() ではなく、 oci_pconnect() 経由で持続的接続を使うべきです。 接続の管理及び接続プーリングについての一般的な情報は 接続のハンドリングをご覧下さい。 同一の引数で oci_connect() を呼び出すと、 2回目以降は最初の呼び出しで返された接続ハンドルを返します。 これは、あるハンドル内のトランザクションが、
Oracle(SJIS)とPHPでWebシステムを作る際、PHP側の文字コードをSJIS・UTF-8どちらにするか悩んでいます。 Linux(CentOS)、Apache、Oracle(SJIS)、PHPで webシステムを作ることになったのですが、 oracle + PHP の開発経験がないので PHP側の文字コードが SJIS、UTF-8 どちらが良いか分からず悩んでいます。 一度 ・PHPの文字コードをSJIS、php_info()のenvironment→NLS_LANG=Japanese_Japan.JA16SJIS ・PHPの文字コードをUTF-8、php_info()のenvironment→NLS_LANG=Japanese_Japan.AL32UTF8 で簡単なプログラムを組んで SELECT、INSERT、UPDATEは試してみたところ、 どちらも文字化けせず問題なさそ
PHP+Oracle のアプリケーションを構築する場合、例えば文字コードを UTF-8 で統一するならば、NLS_LANG 環境変数に"Japanese_Japan.AL32UTF8"を設定します。 このアプリケーションを Linux 上の Apache で稼動させる場合、通常は Apache のインストールディレクトリの下の bin ディレクトリにある envvas に export NLS_LANG=Japanese_Japan.AL32UTF8 と書いておけば OK です。 ただし、このように設定してしまうと、Apache 上で NLS_LANG 環境変数に異なるキャラクタ・セットを設定していることを前提にしている別のアプリケーションが稼動している場合、それらのアプリケーションの動作に悪影響を及ぼす可能性があります。 このような場合、Apache 全体に対して環境変数を設定するのでは
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く