次の例は、戻り値リストでBYTEおよびその他のデータ型を返すスクリプト テーブル演算子を示しています。
SELECT * FROM SCRIPT( ON script_syn_res_tab001 SCRIPT_COMMAND('cat') DELIMITER(',') RETURNS ('uid int', 'helen BYTE', 'word varchar(10)', 'id int') ) as srpt;
次のPythonスクリプトでは、printコマンドはBYTE(20)戻り値の16進数の数字を返します。
'mapper5.py'スクリプト:
#!/usr/bin/python import sys print '040A1b202EC4a256406F7D7Ffffcf3 33 22.4 abc'
mapper5.pyスクリプトを/home/tdatuserに保存するか、次のSQLでディレクトリの場所を変更します。
スクリプトをテストします。
Select * from SCRIPT(SCRIPT_COMMAND ('/home/tdatuser/mapper5.py' ) returns ('v byte(20)', 'v2 int', 'v3 float', 'v4 varchar(10)') ) as d1;
結果:
v | v2 | v3 | v4 |
---|---|---|---|
040A1B202EC4A256406F7D7FFFFCF30000000000 | 33 | 2.24000000000000E 001 | abc |
040A1B202EC4A256406F7D7FFFFCF30000000000 | 33 | 2.24000000000000E 001 | abc |
040A1B202EC4A256406F7D7FFFFCF30000000000 | 33 | 2.24000000000000E 001 | abc |
040A1B202EC4A256406F7D7FFFFCF30000000000 | 33 | 2.24000000000000E 001 | abc |
この例の区切り記号はタブです。区切り記号として別の文字を指定できます。例えば、区切り文字としてカンマを指定できます。
#!/usr/bin/python import sys print '040A1b202EC4a256406F7D7Ffffcf3,33,22.4,abc'
それに従って、SELECT文を変更します。
SELECT * from SCRIPT(SCRIPT_COMMAND ('/home/tdatuser/mapper5.py' ) delimiter(',') returns ('v byte(20)', 'v2 int', 'v3 float', 'v4 varchar(10)') ) as d1;