Итак, я получаю эту ошибку, когда пытаюсь выполнить следующий код
ociexecute(): ORA-00932: inconsistent datatypes: expected - got CLOB
$where_clause = "A.sent_newsletter='N' AND
A.validated='Y' AND
(TRUNC(A.date_validity_to) >= TRUNC(SYSDATE) OR A.date_validity_to IS NULL) AND
(TRUNC(A.date_validity_from) <= TRUNC(SYSDATE) OR A.date_validity_from IS NULL) AND
A.id_category=21 AND
A.id_category=B.id_category AND
B.id_type=C.id_type AND
C.id_subscription=".OCIResult($stmt_users, "ID_SUBSCRIPTION")." AND
C.id_type=D.id_type AND
E.id_news=A.id_news AND";
$stmt_news = OCIParse($conn, "SELECT *
FROM (
SELECT A.id_news,
A.id_category,
A.lang,
A.title,
A.subtitle,
TO_CHAR(A.date_creation, 'DD/MM/YYYY') AS DATE_CREATION,
D.description,
E.text
FROM ".$db_schema_name."news_header A,
".$db_schema_name."newsletter_typecat_profile B,
".$db_schema_name."newsletter_subtyp_profile C,
".$db_schema_name."newsletter_type D,
".$db_schema_name."news_paragraph E
WHERE ".$where_clause."
A.lang='".OCIResult($stmt_users, "LANG")."'
UNION
SELECT A.id_news,
A.id_category,
A.lang,
A.title,
A.subtitle,
TO_CHAR(A.date_creation, 'DD/MM/YYYY') AS DATE_CREATION,
D.description,
E.text
FROM ".$db_schema_name."news_header A,
".$db_schema_name."newsletter_typecat_profile B,
".$db_schema_name."newsletter_subtyp_profile C,
".$db_schema_name."newsletter_type D,
".$db_schema_name."news_paragraph E
WHERE ".$where_clause."
A.lang='".$default_language."' AND
A.id_news NOT IN (SELECT A.id_news
FROM ".$db_schema_name."news_header A,
".$db_schema_name."newsletter_typecat_profile B,
".$db_schema_name."newsletter_subtyp_profile C,
".$db_schema_name."newsletter_type D,
".$db_schema_name."news_paragraph E
WHERE ".$where_clause."
A.lang='".OCIResult($stmt_users, "LANG")."')
) ORDER BY id_category, id_news DESC");
E.text - это клочок, и я хочу запомнить его, а затем отобразить. Есть идеи, почему? Код работает отлично, если я удалю таблицу E. Но теперь я хочу отображать также абзацы из новостей, и для этого мне нужно поле ТЕКСТ.
while(OCIFetch($stmt_news) && (OCIFetchInto($stmt_news, $fields,OCI_ASSOC))) {
$paragraph_text = $fields['TEXT']->load();
$id_newsletter_collection[$id_newsletter_collection_index++] = OCIResult($stmt_news, "ID_NEWS");
$newsletter_item[$newsletter_item_index++] = New newsletter_item(OCIResult($stmt_news, "ID_NEWS"),
OCIResult($stmt_news, "LANG"),
OCIResult($stmt_news, "TITLE"),
OCIResult($stmt_news, "SUBTITLE"),
OCIResult($stmt_news, "DATE_CREATION"),
$paragraph_text,
$sentence_local[OCIResult($stmt_news, "DESCRIPTION")][OCIResult($stmt_users, "LANG")]);
} /* end while */