前提・実現したいこと
OS:windows10
開発言語:PHP(7.4.8)
DB:oracle12.1
webサーバー:IIS
PHP文字コード:utf-8
oracle文字コード:AL32UTF8
PHPでquery実行時に下記のエラーが発生し、
原因が特定できずにいるのでもし何かご存じの方がいらっしゃれば
教えて頂きたく思います。
別の環境では実際に動いていることは確認済みです。
自分のPC上で実行環境を作ろうとしています。
(oracleDBは同じものを見に行っています。)
別環境情報
OS:CentOS
DB:oracle 12c
webサーバー:apache
発生している問題・エラーメッセージ
エラーメッセージ OCIStmtExecute: ORA-00972: identifier is too long 訳:OCIStmtExecute:ORA-00972:識別子が長すぎます
該当のソースコード
ソースコード $sql = 'SELECT "教職員コード" FROM "教職員" DESC "教職員"'; $rs = self::$db->query($sql);
###テーブル定義
【教職員テーブル】
教職員コード VARCHAR2(5)
姓 NVARCHAR2(48)
名 NVARCHAR2(48)
###DDL
CREATE TABLE "SCHOOL"."教職員" ( "教職員コード" VARCHAR2(5), "姓" NVARCHAR2(48), "名" NVARCHAR2(48), CONSTRAINT "教職員_P" PRIMARY KEY ("教職員コード") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 131072 NEXT 57344 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 2097152 NEXT 57344 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS"
試したこと
識別子が長すぎますというエラーに関してかたっぱしから調べましたが
指定するテーブル名やカラム名が30文字以上が原因との情報しか得られずに
自分の状況とどうにも一致していないようで、
このエラーの原因が特定できずにいます。
oracleDBには接続はできているのでPHPの設定?に原因があるのではないかと考えています。
英語ベースのテーブル、カラムのsqlは通ったのですが、
どうやら日本語だと通らないという状況です。
テーブルの存在やカラムの存在は確認済みです。
その他
前提知識などが乏しく見当違いなことを言っていたり、質問の仕方などおかしかったら申し訳ございません。
その際はご指摘お願い致します。
回答1件
あなたの回答
tips
プレビュー