問題タブ [oci8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
500 参照

php - PHP スクリプトをリモートの Oracle データベースに接続する方法

PHPスクリプトをリモートのOracle DBに接続しようとしていますが、この記事に従った後、次のエラーメッセージが表示されました:

PHP エラーが発生しました

重大度: 警告

メッセージ: oci_connect(): ORA-12154: TNS: 指定された接続識別子を解決できませんでした

ファイル名: controllers/cancel.php

ライン番号: 13

問題が何であるかを知っている人はいますか?

0 投票する
1 に答える
233 参照

php - Linux での PHP 用の Oracle モジュール

自分のコンピュータに Oracle をインストールせずに、リモートでホストされている Oracle データベースに直接アクセスする方法はありますか。

リモートでホストされている Oracle データベースのホスト名、データベース名、ユーザー名、およびパスワードを既に知っていました。Red Hat Enterprise Linux Server リリース 5 (Tikanga) を使用していますが、Oracle はまだインストールされていません。

あなたの助けは貴重です。前もって感謝します

0 投票する
1 に答える
2816 参照

php - Oracle Wallet で PHP を使用するにはどうすればよいですか?

重複の可能性:
Oracle ウォレットを使用して PHP から Oracle DB に接続する

Oracleウォレットの実装を予定しています。以下に示すように、sqlplus から動作します。これは、ウォレット機能が機能していることを示しています。

私はこれまでのところ、phpから機能させることに失敗しています。OCI8拡張機能を備えたphpがインストールされています。特に oci_connect コマンドとその構文について教えてください。

これは私のphpファイルです -

コマンドを実行すると$ /mccelog/package/php/php-5.4.7/bin/php connect4.php

と を適切に設定ORACLE_HOMEしたことに注意してくださいLD_LIBRARY_PATH。行 7 は、そのエラーの原因となっている oci_connect 文字列です。oci8/oci_connect を使用して Oracle データベースに接続する方法は?

よろしくお願いします。よろしく。-シャシ・ディヴェカー

0 投票する
3 に答える
9518 参照

php - Mac OS X 10.8MountainLionにOCI8PHP拡張機能をインストールする方法

Mountain LionでPHP用のOCI8モジュールを使用する必要があります。これは、現在32ビットとしてのみサポートされているoracleインスタントクライアントを使用します。

32ビットバージョンのOracleInstantClientをインストールし、sqlplusでテストしましたが、すべて問題ないようです。

ただし、PHP拡張機能OCI8を機能させる必要があるため、自作でApache用の32ビットPHPモジュールを構築することになりました。繰り返しますが、これは機能しているようですが、私が理解しているように、これには32ビットのApacheビルドが必要になるため、組み込みバージョンは64ビットのみのようです。Apacheを32ビットとしてビルドする方法がわからず、これが必要かどうかさえわからないので、多少の損失があります。どんな助けでもAlastairに感謝します

編集:

今のところ、VagrantとUbuntuを使用した仮想化開発を支持してネイティブインストールを放棄しました:https ://github.com/afhole/vagrant-lamp

0 投票する
1 に答える
719 参照

php - OCI_connect/OCIPLogon ORA-01031: 権限が不十分です

log_reader と log_writer の 2 つのオラクル アカウントがあります。log_reader には、データを読み取るための読み取りアクセス権があります。log_writer には、データベースにデータを書き込む書き込みアクセス権があります。アプリケーションは Apache から実行され、Perl と PHP を使用します。パスワードは、php/perl スクリプトにハードコードされています。最近、ハードコーディングされたパスワードを排除するために Oracle Wallet に移行しようとしています。Oracle ウォレットが構成されており、log_reader アカウントと log_writer アカウントの両方で sqlplus と perl が動作します。log_reader アカウントの php。php はログ ライター アカウントでは機能しません。次のエラーが発生します-

PHP コード -

つまり、Oracle Wallet では、sqlplus と Perl には問題がありません。しかし、PHP の場合、データベースにデータを書き込み/挿入しようとすると問題に直面します。PHP の読み取りは正常に動作します。

これまでのところフォローしようとしましたが、運がありません-

php はログ ライター アカウントでは機能しません。次のエラーが発生します-

0 投票する
2 に答える
11661 参照

php - php-oci8エンコーディングの問題

同様の質問がありましたが、通常の解決策は私にはうまくいきません。おそらく私は何かが欠けています。私は私の心を失いかけています:(((

タイトルからわかるように、ASCII以外のコンテンツを含むOracleデータベースがあります。oci8を使用してphpでクエリ/表示したい。

まず第一に、データベースはISO8859P9にあります。つまり、クエリです。

戻り値

したがって、それに応じてNLS_LANG変数を設定しました。つまり、getenv( "NLS_LANG")は"AMERICAN_AMERICA.WE8ISO8859P9"を返します。

AddDefaultCharset ISO-8859-9/etc/apache2/conf.d/charsetファイルに挿入し<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-9">、phpファイルのhtmlコンテンツのheadセクションに常に含めました。したがって、firebugで確認すると、応答の「Content-Type」ヘッダーが「text / html; charset=ISO-8859-9」であることがわかります。

最後に、default_charset = "ISO-8859-9"/ etc / php5 / apache2 / php.iniファイルのような行があり、出力phpinfo()のコアセクションに、default_charsetがISO-8859-9であることがわかります。

これらすべての作業の後、文字を含む文字列を取得してİエコーすると、「?」と表示されます。それは問題!!!クエリを実行するselect dump(nameofthatstring, 16)...と、そのバイト値がDDであることがわかります。つまり、8859-9に従って正しいことがわかります。

関連性があるかどうかはわかりませんが、最終的な詳細を説明します。ıフォームに文字を入力し、GETでajaxを介して送信すると、%FD、つまり8859-9の対応する値に変換されます。問題ありません。 。

urldecodeしてエコーすると、再び問題ありませんııしかし、 (ajaxリクエストを受け取った後)where句に文字列を含むクエリがあると、空のセットが返されます。

ただし、CHR(253)を使用して行を選択すると、行は正しく選択されますが、これらの行を再度印刷すると、「?」になります。文字。

私は本当に立ち往生しています。どんな助けでも大歓迎です。前もって感謝します。

編集:

まず、私はこれを試しました:

しかし、それは解決しなかったので、NLS_LANG変数を設定し、次のように変更しました。

何も変わっていません...

0 投票する
1 に答える
676 参照

ruby - oci8が必要な場合にスクリプトが失敗する

私はルビーに不慣れで、この奇妙な問題を抱えています。64ビットのWin7にruby1.9.3p125、Oracle11gXE(ver 11.2.0.2.0)をインストールしました。このスクリプトは問題なく実行できます。

また、このスクリプト:

しかし、私がこれを行うとすぐに:

物事がうまくいかない-私はこのエラーを受け取ります:

一方、これは正常に機能しています。

これを修正するのを手伝ってもらえますか?'oci8'が必要な場合、'watir-webdriver'にはいくつかの問題があるようです。しかし、これは間違った仮定である可能性があります-それはいくつかの構成の問題である可能性があります。ご協力いただきありがとうございます!

0 投票する
0 に答える
1279 参照

php - コマンドライン oci OCIEnvNlsCreate() が失敗しました

PHP 警告: oci_connect(): OCIEnvNlsCreate() が失敗しました。コマンドラインから php.exe "c:\xampp\htdocs\test.php" を実行しようとすると....

しかし、(localhost/test || ip/test) ブラウザーで参照すると動作します....

別の同じマシンで同じコードと instandclint (INSTANTCLIENT_11_2) バージョンが動作します...何か間違っていると確信しています。

基本的に、何かを実行してOracleサーバーにデータをアップロードするコマンドプロンプト(スケジュール実行)からphpファイルを実行したいと考えています。手動では機能していますが、スケジューリングからではありません...

事前に感謝します。(現在、デモ PC からそのスケジュールを実行しています。デモ PC は、そうでない LIVE PC にデータをアップロードするために動作しています) 奇妙です!!!

ありがとう

ファーネス

テストファイル

0 投票する
1 に答える
2841 参照

ruby-on-rails - Rails3.0-Bundlerでruby-oci8をロードできません

ここのレールn00b-いくつかの支援が必要です。Rails3アプリをLinuxからWindowsに移植しようとしています。私のGemfileは次のようになります。

このWindowsマシンにはOracleクライアントがないため、ruby-oci8gemをネイティブにコンパイルすることはできません。

Gemfileの「ruby-oci8」行をコメントアウトし、ここから手動でgemをインストールしました:http://rubygems.org/downloads/ruby-oci8-1.0.6-x86-mswin32-60.gem。また、必要なDLLをにコピーしましたruby\bin

私はそれが機能することを確認しました:

これは私のデータベースから多くのデータを返すので、私はそれが機能することを知っています。

ただし、require 'oci8'Railsコンソール(または実行中のアプリ)から実行しようとすると、次のようになります。

これはb/c RailsがGemfileで指定されたgemのみをロードすることで発生すると思いますが、指定方法がわかりません。必要なgemをすでにインストールしています:

しかし、Gemfileでこの行のコメントを外すと、次のようになります。

bundlerは別の1.0.6をダウンロードしてコンパイルしようとしますが、もちろん失敗します。また、これらのバリエーションをすべて試しましたが、失敗しました。

なぜbundlerは私がすでに持っているgemをインストールしようとしているのですか?バージョンとプラットフォームを適切に指定して、このgemがすでにインストールされていることをBundlerに認識させ、Gemfile.lockに含めるにはどうすればよいですか?Oracleクライアントをインストールせずに使用できる他の解決策はありますか?

編集1

カイルの提案に従って、私は次のことを試みました:

これにより、Bundlerが正常に実行されました。

ただし、Railsコンソールから「oci8」を要求しようとすると、次のようになります。

欠落しているファイルはext/oci8、インストールされているgemディレクトリの下にありますが、表示されません。

私にできる追加のことはありますか?

0 投票する
4 に答える
15710 参照

php - oci_connect()はコマンドラインからのみ機能します

OK、それで私はoci、apache、php、suseでこのひどい問題を抱えています。まず、バージョン:

問題

私は本当に単純なphpファイルを持っています:

コマンドラインから実行すると、正常に実行されます。

しかし、ブラウザで実行すると、次のようになります。

Apache構成

私はこの問題にしばらく苦労していて、apacheの構成が正しいと確信しています。

apacheプロセスを開始する前に、必要なすべての変数をエクスポートします-追加しました

スクリプトの最初に/etc/init.d/apache2(私はapacheをで開始し/etc/init.d/apache2 startます)。

Apacheは、以下のグループに所属wwwrunするユーザーから実行されます。oinstalldba

考えられる問題

出力のEnvironmentセクションに環境変数がありません-これが問題になる可能性がありますか?phpinfo();はいの場合、どうすればこれを修正できますか?それはある種のセキュリティ問題ですか?SELinuxを有効にした場合のそのような問題について読んだことがありますが、それがなく、ファイアウォールがオフになっています。

解決?

どんな助けでも大歓迎です!