1. 程式人生 > >以shell方式執行sql指令碼總是不成功的一則原因

以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!