Quelqu'un peut-il m'aider avec cette erreur? Je voulais exécuter une instruction Créer une table immédiate qui concatène un nom de table qui change tous les jours/mois.EXECUTE IMMEDIATE CREATE TABLE
Ceci est mon code ...
DECLARE
v_table_name VARCHAR2(100);
v_get_fromdate VARCHAR2(200);
BEGIN
v_table_name := 'mpiat_after_bs_' || SUBSTR(TO_CHAR(SYSDATE, 'ddmonyy'), 3, 5) || '_t';
v_get_fromdate := 'select GET_FROMDATE(to_date(''01/'|| SUBSTR(TO_CHAR(SYSDATE, 'mmddyy'), 1, 2
) ||'/2017 00:00:00'',''dd/mm/yyyy hh24:mi:ss''),''R'') from dual;';
EXECUTE IMMEDIATE ''
CREATE TABLE ' || v_table_name || ' AS
SELECT column1 ,
column2 ,
column3 ,
column4 ,
column5
FROM table_name
WHERE column1 >=' || v_get_fromdate ||'
AND column3 LIKE ''tbl_%''';
END;
c'est l'erreur que je reçois le ...
Error report -
ORA-00936: missing expression
ORA-06512: at line 7
00936. 00000 - "missing expression"
*Cause:
*Action:
Line 7 is EXECUTE IMMEDIATE 'CREATE TABLE ' || v_table_name || ' AS SELECT column1
J'ai cherché beaucoup de code à ce sujet. .. mais je n'ai vu personne concaténer le nom de la table en tant que variable lors de la création de la table.
Je veux juste savoir si c'est possible. Et je suis ouvert à toute suggestion pour que cela fonctionne. Je vous remercie!
pouvez-vous mettre à jour la question avec votre code exact –
Vérifiez vos devis. Par exemple. «EXECUTE IMMEDIATE» devrait être «EXECUTE IMMEDIATE». Aussi, vous ne pouvez pas utiliser ';' dans une sous-requête (v_get_fromdate) – daZza
c'est le code exact, je change juste les valeurs pour la protection des données. merci – Luis