Impossible de créer la table à l'aide de pl/sql
declare
type yy is table of t12.name%type index by binary_integer;
y yy;
n number:=1;
begin
execute immediate 'create table rat1 ( name varchar2(10) )';
commit;
select name bulk collect into y from t12;
for i in (select id,name from t12)
loop
dbms_output.put_line(y(n));
n:=n+1;
end loop;
forall i in y.first..y.last
insert into rat1 values(y(i));
end;
Sa présentation ora-00942
.
J'ai vérifié sur le sujet...à un certain site web, il a été de mentionner que vous avez à donner suite à privilages...
grant select on sys.v_$paramenter to abc
Je suis incapable de le faire aussi..tout organisme Peut m'aider avec ce
Plus..je ne veux pas utiliser tout concept de procédures ou les curseurs ici.....
Notez que l'exécution de DDL en PL/SQL avec
Notez que l'exécution de DDL en PL/SQL avec
EXECUTE IMMEDIATE
n'est pas une bonne idée. Vous devriez le faire dans un script SQL, indépendant du code PL/SQL. PL/SQL n'est pas destiné à créer des tables et l'aime.
OriginalL'auteur Tarun | 2011-10-22
Vous devez vous connecter pour publier un commentaire.
le modifier afin qu'il soit exécuté en 2 étapes successives (PAS en PL/SQL anonyme bloc comme c'est le cas maintenant):
D'abord ce
PUIS un DEUXIÈME bloc de cette
ÉDITER en tant que par commentaire:
Avant l'exécution de l'ENSEMBLE du PL/SQL bloc est analysée - tous les objets utilisés dans un PL/SQL bloc doit exister AVANT que le PL/SQL bloc est exécuté...
OBJECTIF: Rien je suis juste sur le chemin de l'apprentissage PL/SQL..donc était juste de faire des expériences..essais et d'erreurs....
non - il s'agit en effet, mais avant l'exécution de l'ensemble du PL/SQL bloc est analysée - de sorte que tous les objets utilisés dans un PL/SQL bloc doit exister AVANT que le PL/SQL bloc est exécuté... s'il vous plaît n'oubliez pas de upvote/marquer comme acceptée si une réponse a été d'une aide...
Mais je ne suis pas encore capable de le faire....j'ai essayé de le faire dans imbriquée commencer, mais il a encore montré que la table n'existe pas..
Dois-je le faire en sql distinct des fichiers..et puis l'exécuter un par un..coz qui serait l'obv de la place..je m en essayant de le faire dans le même fichier
OriginalL'auteur Yahia
Vous devriez le faire en deux blocs distincts.
Premier bloc:
La barre oblique indique que votre tampon doit être envoyé au SGBD et évalués. Il indique où se trouve votre code PL/SQL se termine et l'évaluation peut commencer.
Puis le suivant:
Ainsi, vous avez:
Il fonctionne sous SQL*Plus et SQLDeveloper.
ORA-06550: line 277, column 1: PLS-00103: Encountered the symbol "BEGIN
. De plus, quand je rentre le slash je reçois une erreur de syntaxe. J'utilise SQLDeveloper.Veuillez noter que les points de suspension
...
doit être changé dans le code de travail effectif.Oui j'ai compris.
Ensuite, vous devez poster une question avec le code qui a le problème. Nous avons besoin de plus d'informations.
Merci @LudovicKuty je le ferai.
OriginalL'auteur Ludovic Kuty
Si l'on travaille à l'intérieur dans SQLPlus bloc, toutes les modifications DDL doit être effectuée avec exécution immédiate.
Malheureusement, ces changements sont invisibles jusqu'à ce que le bloc se termine l'exécution.
Pour contourner ce problème, utilisez par conséquent exécution immédiate pour tous les énoncés suivants, qui dépend de la ancien "caché" des changements. Cela s'applique également pour les instructions DML. Dans votre cas:
OriginalL'auteur radzimir