Я создал следующий запрос. Однако, я получил ошибку ниже. Я думаю, что ошибка связана с TO_CHAR («AND MARITAL_STATUS» в строке «Женатый-гражданский супруг»). Как я могу определить другие способы? Спасибо заранее.Ожидаемый PLSQL один из следующих
Error:
PLS-00103: Encountered the symbol ") " when expecting one of the following:
. () , * @ % & = - + </> at in is mod remainder not rem =>
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec between || member
06550. 00000 - "line %s, column %s:\n%s"
Это мой код:
SET SERVEROUTPUT ON;
DECLARE
KATSAYI1 VARCHAR2(1000):=TO_CHAR('CREATE TABLE DQ_DNM2 AS SELECT * FROM DQ_TEST_DATA WHERE YEARMONTH=');
KATSAYI2 varchar2(100) := TO_CHAR(sysdate,'YYYY');
KATSAYI3 VARCHAR2(100) := TO_CHAR(KATSAYI2-2);
KATSAYI4 varchar2(100) := to_char(sysdate, 'MM');
KATSAYI7 varchar2(100) := to_char(KATSAYI4 + 11);
KATSAYI5 varchar2(100) := to_char(CONCAT(KATSAYI3,KATSAYI7));
KATSAYI6 VARCHAR2(1000):=TO_CHAR(CONCAT(KATSAYI1,KATSAYI5));
KATSAYI8 VARCHAR2(100) :=TO_CHAR(' AND MARITAL_STATUS in ('Married-civ- spouse') ');
KATSAYI9 varchar2(100) := to_char(CONCAT(KATSAYI6,KATSAYI8));
BEGIN
dbms_output.put_line(KATSAYI5);
DBMS_OUTPUT.PUT_LINE('İlgili tablo yaratıldı.');
EXECUTE IMMEDIATE KATSAYI9;
END;
/код здесь
Распечатайте сгенерированный SQL (' KATSAYI9'), а затем отредактируйте свой вопрос и добавьте его (но, скорее всего, вы уже увидите ошибка для себя тогда) –
Использовать двойные кавычки: TO_CHAR ('AND MARITAL_STATUS in (' 'Married-civ-spus' ')'); 'или, предпочтительнее, использовать переменные связывания. – MT0