misc.log

日常茶飯事とお仕事と

Oracle

Oracle DB、アーカイブログの記録状況を確認する

とりあえずメモです。Oracle DB(12c)のアーカイブログを削除する処理動作の確認が必要になったのですが、本当に消えたのかどうかを調べる方法を探していました。2通りあったので説明してくださってるサイトのリンクを貼っておきます。1つめはこちら。rman…

Oracle DB、接続しているユーザーを確認する

いつも忘れてネットで検索する羽目になるのでメモしておきます。データのインポート等、全体に関する作業を行う際に、既に接続しているユーザーがいるとエラーが出る場合があります。そうした場合に、現時点でデータベースに接続しているユーザーを確認する…

Oracle DBの文字列比較を試してみる

開発案件で、顧客の部署に割り当てられている組織コードを「0010000~001M211」のように文字列含みで範囲指定する必要があり、大小比較が想定通り行われるかちょっと試したい場面が出てきました。 実際にデータを作って……というのが確実ですが、面倒くさいの…

Oracle 12c CREATE USER文を生成すると謎のGRANTがついてくる

現象 Oracle 12c案件(Oracle DB Enterprise 12.2.0.1.0)でデータのリストア手順を組むことになり、一旦Dropしたユーザーを再度Createして……というところで、実際のDBに用意されているユーザーのCREATE文をSQL Developerで出力したところこんなGrantがくっ…

Oracle 12cをWindows 10にインストールできない

仕事で、Oracle 12cのデータベース本体をWindows 10 Proにインストールしなければいけなかったのですが……上手くいきませんでした。おそらく原因は、既に入っていた11gのクライアントライブラリーか、その他の利用者権限に関する制限だと思います(客先PCのた…

Oracleのアーカイブログ削除処理に関するメモ

Oracle DBのアーカイブログ(Archive Log)削除を定期的に行う処理を用意する必要が出てきたので、調べ物したメモです。正確なことを書いているとは限りません。もし参考にされる方がいらっしゃったら最終的には自分できちんと調べてから使ってください。 基…

Oracle DBのバックアップ/リストア処理作成に関するメモ

ちょっとお仕事でOracleの運用管理系のお手伝いをすることになったので、調べ物をしたリンクなどをメモしておきます。 基本事項 データベース名的なもののOracle版について https://www.shift-the-oracle.com/config/oracle_sid-db_name-global_name.html ダ…

Oracleのユーザー情報を確認する

なぜか取引先データベース(Oracle DB)のユーザーアカウント状況について確認しなければならなくなったので……同じような状況になった時用にメモ。いや……なんで開発/保守環境のデータベース管理やってる人がいないのよ……。 ユーザー情報テーブル DBA_USERS …

64bit環境に32bit用Oracle Client(11g用)を入れた時のメモ

業務でOracle Clientを入れろとの指示があってファイルまで指定されたのですが、64bit Windows 10に対して、渡されたのが32bit版のOracle Clientだったことによるアレコレのメモです。 インストール Oracle Clientのインストール自体は特に問題ありませんで…

ODP.NETのDLL名、変わっていたのね

久々にWindows Formsのアプリをいじることになって、客先からソースをもらって改修作業を……と思ったら、開発環境やら手順やらが全くなくて四苦八苦。その中で、Oracle接続に使っているライブラリが「Oracle.ManagedDataAccess」ってなっていたのでなんだろう…

SQL Server、OpenQueryでのSQLは文字列連結などが使えない?

SQL ServerからOracleにリンクテーブル経由でアクセスしていろいろデータを持ってくる処理を作成中。サーバー名やらスキーマ名やらをピリオドでつないだSQL記法だとインデックスが使えず遅いため、SQL ServerのOpenQuery命令でSQLごとOracleに渡し、Oracle側…

Oracle、to_charで'00000000'に変換したあとのsubstrで桁がおかしい?

Oracleのシステムで、「20160825」のようにnumber型で年月日情報持っているというテーブルがあり、これを別RDBに移植するという作業をやってます。で、このデータを扱う処理では下記のようなto_char処理で年月日を「2016/08/25」に変換していました(下記サ…

文字コード関連の過去エントリー

なんか自分よりずっと前からウェブ関連やってる人たちが全然文字コードとか気にしてなくてノウハウも持ってなくてちょっと参ってるので、とりあえず過去に自分が書いたものを列挙しておきます。何か聞かれたときにさっと調べられるように。 文字コード全般 w…

PowerCenterのバルク転送モードはSQL*Loaderを使う?

PowerCenterでOracleを転送先にしたデータ転送を行おうとした際に、「索引が定義されています」というエラーメッセージが出てデータ転送に失敗するという現象が発生。調べてもらったところ、データ転送時の設定で「バルク(bulk)」が指定されているとこの現…

ロードされているODP.NETライブラリのバージョンを調べる

昨年だったかに、ちょっと複雑なデプロイ環境を作る必要があり、その環境で実際に使われているODP.NET(Oracle Data Provider for .NET)のバージョンを調べなければならなかったので作ったコード。どこかで使いそうなので貼っておきます。 'Oracle.DataAcce…

Oracle DBのNumber型をSingleで受けたら誤差った

絶対忘れてたぶん次も調べるだろうからメモっておきます。やったのは私ではないのですが、相談を受けてちょいと調べました。 環境 .NET Framework 3.5 + C# Oracle Database(バージョン不明) 起きたこと Oracle DatabaseのNumber型(少数含む)をDatasetで…

ODP.NETと.NET Framework 4.0

.NET Framework 4.0に対応したODP.NET(Oracle Data Provider for .NET)は、Oracle 11g対応のODP以降しか無いのですね。10g用として公開されているODP.NET(ODAC 10.2.0.2.21 に含まれるもの)は、.NET Framework 1.1と2.0用。では、以下の疑問はどう解決す…

ORA-12542 TNSアドレスがすでに使用中です

現場でこのようなエラーが。どうやら、サーバーが使えるポートを使い果たしたことが原因のよう。ポートは一度利用されると、一定時間再利用できないらしいです(デフォルトは4分)。で、接続と切断を繰り返すようなツールなどが動いた場合に、ポートを使い果…

Oracle 11gと10gと発行者ポリシー

Oracle 10g対応のODP.NET(Version 2.102.5.0)などを使っている環境のODP.NETその他を、いきなり11gのものに入れ替えて動くだろうか、という話が職場で起きている。実際に動いたという話も出ているので(試した人がいる)、発行者ポリシーによってバージョ…

Excel VBAの文字列操作関数がコンパイルエラー?

客先の環境でテストをしている同僚より、自社では動いたExcel VBAの命令がコンパイルエラーで動かないとの連絡が。問題の関数はTrim(文字列の空白削除)。VBAはVisual Basic 6.0に似た言語であることから、VB6.0のランタイムなど、何か必要なモノが入ってい…

ExcelからOracleにVBA経由でアクセスするときの……

VBA経由でOracleを操作するときのライブラリを調べるのに、とりあえず10.2.0.5のOracle Client全部入り環境に何が入っているかを見てみた。可能であれば、最小構成のOracle Clientしか入っていない環境で動かしたいのだけど……たぶん使ってるのはこのOracle P…

Oracle CHAR型のサイズ指定方法

Oracleの固定長文字列型「CHAR」ですが、サイズ指定にはバイトと文字数の両方が使えるんですね。しらんかった。テーブルの宣言時に、サイズ値の後ろに「BYTE」とつけるか「CHAR」とつけるかの違いだそうです。 詳しくはここで説明してくれてますね。 Differe…

OracleのCHAR型(固定長文字列)とADO経由での検索

OracleでCHAR定義されたカラムの情報を、ADO経由で検索した際にうまく結果が返らないという相談を受けたのですが……。たしかOracleのCHAR型って、勝手に後ろに空白が入って固定長フルサイズまでパディングされたような。そうすると、厳密な一致という条件で検…

ODP.NETのバージョンでトラブル

以前、アセンブリバージョンリダイレクトについて書きました。これを使った環境で、なんかエラーが(笑)。 やりたかったことは ODP.NET 2.102.5.0で作成したプログラムを、ODP.NET 2.102.4.0だけが入った環境で動かしたい ということでした。通常、古いバー…

ODP.NETとアセンブリバージョンリダイレクト

新バージョンのODP.NETを参照してビルドしたものを、旧バージョンのODP.NETが入った環境で稼働させる必要が出てきました。方法について調べていたところ、同僚からこのサイトを紹介されました。 バージョンリダイレクト/株式会社ミークス http://www.meeks.j…

Windows 7 32bit版にOracle 10g Clientをインストールしようとしてエラー:原因はIME

行き詰まりました。環境移行開発の準備として、Windows 7 の32bit版(MSDNライセンスで入手しているのでエディションはUltimate)に対して、Oracle 10g 10.2.0.4のクライアントを入れようとしたのですが、以下のようなエラーがでてインストールが進みません…

64bit環境へのODP.NETインストールとアプリの配布

お仕事で64bit環境と32bit環境が混在する環境への配布を行う必要があるのですが、その辺りについての「どうすべきか」がよく分からないので調べています。 64bit環境にODP.NET 64bit版をインストールしてみる 64bit環境であるWindows Server 2008 R2に、ODP.…

まっさらのOracle Database 11g (11.2.0.1.0)で一緒に入ってくるODP.NET

http://d.hatena.ne.jp/frontline/20120425/p1 に書いた方法でインストールしたOracle Database、ODP.NETとか入っていないのかと思ったら、入っていました。 場所は、「C:\app\(userName)\product\11.2.0\dbhome_1\ODP.NET\bin\2x」。どうやら、.NET Framewo…

Oracle 11g 64bit版の仮想環境インストールでエラー

Oracle環境の構築やODP.NETを使ったアプリのビルド手順等の確認のため、VMware上に構築したWindows Server 2008 R2にOracle DBをインストールしていたのですが、こんなエラーが…… メッセージは「Incomplete dynamic bit lengths tree」、原因等についての補…

64bit環境でのODP.NET 64bit版、32bit版の共存

Oracle 11gから導入されたInstant Clientを使えばいけそうだけど、でもやっぱ共存となると要確認かな……というオチでした。Instant Clientも「よくわからないものは使うな」でNG出されそうなので、残念ながら環境を別々に作って考え事を減らす路線でいきます…