Remplacer les caractères dans les chaînes par de nouvelles lignes et tabulationsJ'écris une requête OLEDB qui nécessite que la commande SQL soit dans une chaîne sans contenir de fin de ligne ou de tabulation, uniquement des espaces.
Ce qui suit fonctionne, mais je ne trouve pas comment faire cela sans avoir à créer les chaînes «vides».
L'utilisateur peut modifier la requête SQL, en utilisant JMP installé sur les machines Windows.
SQL_query = "SELECT a, b, c
FROM mytable
WHERE a = 'alice'
AND b BETWEEN '86' AND '91'";
// Cleansing strings (inputs need to be in one line)
newline = "
";
tab = " ";
space = " ";
SQL_query = substitute(SQL_query, tab, space);
SQL_query = substitute(SQL_query, newline, space);
ScriptingRe: Remplacer les caractères dans les chaînes par de nouvelles lignes et tabulationsVous pouvez utiliser Séquences d'échappement pour ces caractères spéciaux.
SQL_query =
"SELECT a, b, c
FROM mytable
WHERE a = 'alice'
AND b BETWEEN '86' AND '91'";
SQL_query = Substitute( SQL_query,
"\!t", " ",
"\!r", " "
);
Vous pourriez également trouver le Remplacer par () fonction utile. Il effectuera la substitution sur place et évitera l'affectation à la chaîne d'origine.
Substitute Into( SQL_query,
"\!t", " ",
"\!r", " "
);
Re: Remplacer les caractères dans les chaînes par de nouvelles lignes et tabulationsPour une raison quelconque, aucune de ces substitutions ne semble fonctionner à l'intérieur d'un complément que je développe (?)
Si je copie et colle le code, la substitution fonctionne.
Re: Remplacer les caractères dans les chaînes par de nouvelles lignes et tabulationsC'est étrange. Il n'y a rien de spécial dans un complément qui pourrait affecter cela. Pouvez-vous fournir plus de détails sur ce qui ne fonctionne pas exactement?
La fonction Hex () peut vous aider à voir exactement quels caractères (invisibles) se trouvent dans votre chaîne d'entrée.
tab = "\!t";
Show( Hex( tab ) );
return = "\!r";
Show( Hex( return ) );
SQL_query =
"\[SELECT a, b, c
FROM mytable
WHERE a = 'alice'
AND b BETWEEN '86' AND '91']\";
Show( Hex( SQL_query ) );
Résultats:
Hex(tab) = "09";
Hex(return) = "0D";
Hex(SQL_query) = "53454C45435420612C20622C20630D0946524F4D206D797461626C650D0957484552452061203D2027616C696365270D0909414E442062204245545745454E202738362720414E442027393127";