Je vais avoir besoin de générer un fichier de script d'insertion de feuille Excel. Je réussis partiellement à générer un fichier de script. Mais j'ai été frappé dans une situation, j'ai besoin d'aide de any1.génération Oracle script PL/SQL de feuille Excel
Ma logique est quelque chose comme ça, Lire la première cellule, vérifier si la valeur de la cellule existe déjà dans DB.If pas, générer un script d'insertion comme suit
declare
PK1 integer;
begin
select tablename_seq.currval into PK1 from dual;
insert into TableName valuestablename_seq_seq.nextval,'Blagh',1);
end;
Im stockage PK1 dans Hashtable avec les données ont KEY .so que si les mêmes données apparaissent dans les lignes suivantes, en utilisant la recherche Hashtable, j'obtiendrai la valeur de hachage pour la clé de données correspondante et la passerai à un autre script d'insertion. Mais chaque fois que je générer de nouvelles variables comme PK1, PK2 ... etc.I ont garder le mot clé « BEGIN » après Déclare et également ajouter le mot clé « END » après chaque insertion, si je le fais la portée de la variable sort hors champ. J'utilise peut-être ces variables déclarées dans une autre instruction insert a un paramètre. Y a-t-il une chance d'enregistrer PK1, Pk2 ..... a des variables de session/globales pour l'exécution du script. Ils deviendront donc disponibles pour tout le temps d'exécution du script.
Chaque cellule générera script insertion dans correspondant table.I l'utilisation ci-dessus Technic, problème est, si je dois utiliser la variable PK1 quelque part dans la cellule (10,10) s 'script insert , parce que nous terminons 'end' immédiatement après le bloc Begin, la portée de PK1 doit toujours rester dans Begin block.Scope PK1 LOst.Pour cela, j'ai créé Begin avec un insert et ensuite en créer un autre Begin avec un autre insert et ainsi de suite la fin im ajoutant end; end; Mais le problème avec la méthode ci-dessus est, j'essaie d'insérer 400 cellules insérer des scripts. dans ce flux lorsque j'essaie d'exécuter le script, il génère une erreur d'exécution 'Stack Overflow' – user145610