以shell方式執行sql指令碼總是不成功的一則原因
shell指令碼:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#!/bin/sh
. /opt/sybase/SYBASE.sh
isql -S<server_name> -Usa -P<sa_passwd> < input.sql > test_sybase.log
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
input.sql指令碼:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
USE master
go
disk init
name = 'test',
physname='/opt/sybase/data/test.dat',
size='12m'
go
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
test_sybase.log日誌無任何回顯,sybase的server_name.log檔案也沒有任何回顯,手動執行sql指令碼是成功的。
一開始沒頭緒,心想見鬼了,早上起床後頭腦清晰,繼續搗鼓,馬上發現原來是sql的指令碼是DOS格式,轉換為Unix格式後立馬OK!