Quotingproblem mit ' und " im "CALL EXECUTE"-Aufruf
Verfasst von Frederik_Bloch am 6 Mai, 2010 - 15:51
Hallo,
wie gelingt es im folgenden Code die Namen aus Tabelle "namen1" 1:1 mit CALL EXECUTE in die Tabelle "namen2" zu schreiben?
Hier die Testdaten:
data namen1;
length name $20;
name = 'Horst "THE BULL" Oppaschowski';
output;
length name $20;
name = 'Horst "THE BULL" Oppaschowski';
output;
name = "L'Oreal";
output;
run;
data namen2;
length name2 $20;
run;
data _null_;
set namen1;
call execute("proc sql; insert into namen2 set ");
call execute("name2 = '" || name || "';");
call execute("quit;");
run;
Quoting macht mich wahnsinnig...!
Danke für Hilfe.
Gruß Frederik
»
- Anmelden oder Registrieren um Kommentare zu schreiben

Funktion Quote
Hallo Frederik,
statt selber zu quoten, benutzt man besser die Funktion "Quote". Die kümmert sich dann von allein um Hochkommas oder Anführungszeichen im Text.
length name $20;
name = 'Horst "THE BULL" Oppaschowski';
output;
name = "L'Oreal";
output;
run;
data namen2;
length name2 $20;
if 0;
run;
data _null_;
set namen1;
call execute("proc sql; insert into namen2 set ");
call execute("name2 = " || Quote(name) || ";");
call execute("quit;");
run;
Schöne Grüße
Jan
Oha!
Also das ist ja wirklich SOO einfach... dass es mir schon fast peinlich ist. Ich hatte in der Doku gelesen, dass diese Funktion um Grunde einfach noch mal doppelte Anführungszeichen setzt und mich aufgrund dessen gleich dagegen entschieden.
Naja, probieren geht wohl über studieren, ne?
Vielen Dank Jan, dass du diesem Anfänger hier so schnell und einfach weitergeholfen hast!
Gruß Frederik