問題タブ [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.
php - PHP スクリプトをリモートの Oracle データベースに接続する方法
PHPスクリプトをリモートのOracle DBに接続しようとしていますが、この記事に従った後、次のエラーメッセージが表示されました:
PHP エラーが発生しました
重大度: 警告
メッセージ: oci_connect(): ORA-12154: TNS: 指定された接続識別子を解決できませんでした
ファイル名: controllers/cancel.php
ライン番号: 13
問題が何であるかを知っている人はいますか?
php - Linux での PHP 用の Oracle モジュール
自分のコンピュータに Oracle をインストールせずに、リモートでホストされている Oracle データベースに直接アクセスする方法はありますか。
リモートでホストされている Oracle データベースのホスト名、データベース名、ユーザー名、およびパスワードを既に知っていました。Red Hat Enterprise Linux Server リリース 5 (Tikanga) を使用していますが、Oracle はまだインストールされていません。
あなたの助けは貴重です。前もって感謝します
php - Oracle Wallet で PHP を使用するにはどうすればよいですか?
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 データベースに接続する方法は?
よろしくお願いします。よろしく。-シャシ・ディヴェカー
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
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 はログ ライター アカウントでは機能しません。次のエラーが発生します-
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変数を設定し、次のように変更しました。
何も変わっていません...
ruby - oci8が必要な場合にスクリプトが失敗する
私はルビーに不慣れで、この奇妙な問題を抱えています。64ビットのWin7にruby1.9.3p125、Oracle11gXE(ver 11.2.0.2.0)をインストールしました。このスクリプトは問題なく実行できます。
また、このスクリプト:
しかし、私がこれを行うとすぐに:
物事がうまくいかない-私はこのエラーを受け取ります:
一方、これは正常に機能しています。
これを修正するのを手伝ってもらえますか?'oci8'が必要な場合、'watir-webdriver'にはいくつかの問題があるようです。しかし、これは間違った仮定である可能性があります-それはいくつかの構成の問題である可能性があります。ご協力いただきありがとうございます!
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 にデータをアップロードするために動作しています) 奇妙です!!!
ありがとう
ファーネス
テストファイル
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ディレクトリの下にありますが、表示されません。
私にできる追加のことはありますか?
php - oci_connect()はコマンドラインからのみ機能します
OK、それで私はoci、apache、php、suseでこのひどい問題を抱えています。まず、バージョン:
問題
私は本当に単純なphpファイルを持っています:
コマンドラインから実行すると、正常に実行されます。
しかし、ブラウザで実行すると、次のようになります。
Apache構成
私はこの問題にしばらく苦労していて、apacheの構成が正しいと確信しています。
apacheプロセスを開始する前に、必要なすべての変数をエクスポートします-追加しました
スクリプトの最初に/etc/init.d/apache2
(私はapacheをで開始し/etc/init.d/apache2 start
ます)。
Apacheは、以下のグループに所属wwwrun
するユーザーから実行されます。oinstall
dba
考えられる問題
出力のEnvironment
セクションに環境変数がありません-これが問題になる可能性がありますか?phpinfo();
はいの場合、どうすればこれを修正できますか?それはある種のセキュリティ問題ですか?SELinuxを有効にした場合のそのような問題について読んだことがありますが、それがなく、ファイアウォールがオフになっています。
解決?
どんな助けでも大歓迎です!