1

私は sybase データベースの python で isql コマンドを使用しています。データベース クエリが失敗した場合、isql コマンドはデフォルトでリターン コードとしてゼロを返します。クエリが失敗した場合はゼロ以外の値を返して、自分のクエリが無効です。

インターネットで調べたところ、isqlで --retserverror オプションを使用すると目的が解決することがわかりましたが、使用中にエラーが発生します

私は次のpythonコードを使用しています:-

ps = subprocess.Popen("""./isql -S %s -U %s -P %s -D %s --retserverror -s "|" -w 10000 <<EOF
%s
go
EOF""" % (server,userid,password,database,Query),stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
error = ps.stderr.read()
out, err = ps.communicate()
if ps.returncode == 0:
   final = out
else:
         print "Error"
    final = error
print final

出力:-

Syntax Error in '--retserverror'.
usage: ./isql [-b] [-e] [-F] [-p] [-n] [-v] [-X] [-Y] [-Q]
    [-a display_charset] [-A packet_size] [-c cmdend] [-D database]
    [-E editor [-h header [-H hostname [-i inputfile]
    [-I interfaces_file] [-J client_charset] [-K keytab_file]
    [-l login_timeout] [-m errorlevel] [-M labelname labelvalue]
    [-o outputfile] [-P password] [-R remote_server_principal]
    [-s col_separator] [-S server_name] [-t timeout] [-U username]
    [-V [security_options]] [-w column_width] [-z localename]
    [-Z security_mechanism]

誰か私をここに案内してもらえますか?

4

1 に答える 1