私が働いている会社は現在、DB接続の手段としてOCIライブラリを抽象化するためにいくつかの基本的な機能を使用しています。PHPのPDOオブジェクトへの切り替えを検討していますが、いくつかのクイック検索から、Oracleドライバーは他のPDOドライバーよりも少し成熟していないようです。PDO / oci8を実稼働環境で使用したことのある人なら誰でも、PDO/oci8の賛否両論をいただければ幸いです。
ありがとう!
私が働いている会社は現在、DB接続の手段としてOCIライブラリを抽象化するためにいくつかの基本的な機能を使用しています。PHPのPDOオブジェクトへの切り替えを検討していますが、いくつかのクイック検索から、Oracleドライバーは他のPDOドライバーよりも少し成熟していないようです。PDO / oci8を実稼働環境で使用したことのある人なら誰でも、PDO/oci8の賛否両論をいただければ幸いです。
ありがとう!
私はPDOドライバーの個人的な経験がありません(実験的なものとしてタグ付けされていれば、それを考慮しなくても十分でした)。しかし、UndergroundPHPおよびOracleManualでは、 PHP PDO Extensionの章の序文として、以下を読むことができます。
PDO拡張機能とPDO_OCIドライバーはオープンソースであり、PHP5.1以降に含まれています。OracleはPDO_OCIに貢献していません。
PHPコミュニティはPDOプロジェクトを衰退させており、Oracleは、機能セット、パフォーマンス、信頼性、および安定性が優れているため、可能な限り代わりにOCI8を使用することを推奨しています。汎用アプリケーションにPDO_OCIを使用することはお勧めしません。
拡張機能は完成しておらず、おそらくメンテナンスが不十分であり(ただし、いくつかのバグ修正は時々行われています)、何年もの間そのようになっています。私はそのバスケットに卵を入れませんでした。
OracleはPDO用のドライバの開発には関心がないようです。Oracleデータベースに近い状態を保つために独自のドライバを開発しています...Oracleドライバに...など:)
私が見た限りでは、最大に対処できれば問題はありません。4000文字のVARCHAR2のテキスト。CLOB(および/またはそれ以上)が必要な場合は、PDO_OCIを使用しないでください。
Oracleを使用したPDOの代わりに、一連のクラス「PDOSurrogate」を作成しました。PDOが十分に成熟したら、リファクタリング->名前の変更を使用してPDOに変更できます。
パーティーに遅すぎるかもしれません..議論に何らかの価値を加えることを考えただけです。私はOCI8およびOCI8_11拡張機能の経験があり、ストアドプロシージャ/パッケージ、CLOB / BLOB、およびXMLを使用して広範なワークロードを実行しました。オプションを使い果たす必要はありませんでした。さらに、非常に信頼性が高く、大量のロードを処理できます。かつてETL(Extract Transform Load)アプリケーションが重いワークロードを処理するために...また、oci8はpdoよりも広く使用されている拡張機能であると信じています。