Vous capturez la sortie en utilisant une clause INTO
et envelopper le SELECT
dans un FOREACH
. Cela récupère une ligne de données à la fois et vous avez besoin de variables séparées pour chaque colonne que vous sélectionnez. Vous pouvez ensuite les manipuler dans une chaîne plus grande.
Vous pouvez ensuite utiliser SYSTEM
.
Toutefois, la sortie de echo
sera envoyée à /dev/null
(ou NUL:
). Si c'est ce que vous voulez, d'accord, mais pourquoi? Sinon, vous devrez organiser la redirection vers un autre endroit pour vous-même.
CREATE PROCEDURE echo(str VARCHAR(200) DEFAULT 'hello world');
DEFINE cmd VARCHAR(255);
LET cmd = "echo " || str || " >>/Users/jleffler/tmp/arcana.out";
SYSTEM cmd;
END PROCEDURE;
EXECUTE PROCEDURE echo();
EXECUTE PROCEDURE echo("The world is your oyster");
DROP PROCEDURE echo;
Vous devrez ajuster le nom du fichier en fonction de vos besoins - les chances sont élevées que vous n'avez pas mon répertoire personnel sur votre machine.
Exemple de fichier de sortie:
hello world
The world is your oyster
autorisations sur fichiers et répertoires menant au fichier:
2 drwxr-xr-x root wheel 2017-05-24 17:17:16/
169236 drwxr-xr-x root admin 2016-09-20 12:46:37 /Users
609973 drwxr-xr-x jleffler staff 2017-05-24 17:18:45 /Users/jleffler
1670154 drwxr-xr-x jleffler staff 2017-05-24 17:19:02 /Users/jleffler/tmp
63140467 -rw-r--r-- jleffler staff 2017-05-24 17:19:02 /Users/jleffler/tmp/arcana.out
Quelle est votre question? Jetez un coup d'œil à [demander]. –