を返し、私は、このISSを備えましたOracleデータベースからのインポートによるue。私はDoctrine/DBALをデバッグし、テーブルのメタデータをインポートするときに、all_col_comments
Oracleメタデータテーブルのテーブルコメントを探します。これは、2つの異なるスキーマに2つのテーブルがある場合2人の異なる所有者)と全く同じテーブル名と列名を使用します。
Error message with debug enabled
私は、この(おそらく稀な)問題を修正するためのGitHub上の教義DBALリポジトリにpull requestを提出しました。回避策として、あなたは、スキーマのいずれかから、競合を引き起こしているテーブルを削除することができたり、プロジェクトのvendor
ディレクトリの下/lib/Doctrine/DBAL/Platforms/
ディレクトリにOraclePlatform.php
ファイルを編集し、次のようにgetListTableColumnsSQL
機能を変更します。
/**
* {@inheritDoc}
*/
public function getListTableColumnsSQL($table, $database = null)
{
$table = $this->normalizeIdentifier($table);
$table = $this->quoteStringLiteral($table->getName());
$tabColumnsTableName = "user_tab_columns";
$colCommentsTableName = "user_col_comments";
$ownerCondition = '';
$innerOwnerCondition = '';
if (null !== $database && '/' !== $database) {
$database = $this->normalizeIdentifier($database);
$database = $this->quoteStringLiteral($database->getName());
$tabColumnsTableName = "all_tab_columns";
$colCommentsTableName = "all_col_comments";
$ownerCondition = "AND c.owner = " . $database;
$innerOwnerCondition = "AND d.OWNER = c.OWNER";
}
return "SELECT c.*,
(
SELECT d.comments
FROM $colCommentsTableName d
WHERE d.TABLE_NAME = c.TABLE_NAME
AND d.COLUMN_NAME = c.COLUMN_NAME " . $innerOwnerCondition . "
) AS comments
FROM $tabColumnsTableName c
WHERE c.table_name = " . $table . " $ownerCondition
ORDER BY c.column_name";
}
+ 1Hello I機能を変更し、完璧に動作します ありがとうカリムからコロンビア –
@ChristianReyesArgottyよろしくお願いします。この質問への答えとして私の答えを記入してください:) – Francois