我有一個數組,它返回從文件中讀取的表的data_type
。例如:數組值並插入ksh
filed1 VARCHAR2
filed2 INTEGER
等
現在我要做的insert
在同一個表進行備份。所以我想出了這個這個過程是動態的:
ENDROW=""
while read ENDROW;
do
tmp=${ENDROW##*@#;}
field1=`printf "%s\n" "${tmp%%@#;*}"`
tmp=${ENDROW##*@#;}
field2=`printf "%s\n" "${tmp%%@#;*}"`
*and here the insert in the table*
done
我創建數組,因爲我需要它來尋找各領域的data_type
,所以我能理解,如果值需要引用(''
)或不。我怎樣才能「連接」數組呢? shell將能夠理解該數組的第一個值是VARCHAR2
並且引用''
作爲insert
的一部分。
噢現在我明白了..謝謝! However..if我的數組是這樣的:
field1 VARCHAR2
field2 NUMBER
field3 VARCHAR2
field4 DATE
field5 TIMESTAMP(6)
field6 DATE
field7 DATE
field8 CHAR
的功能將是:
function format {
case "${typeof[$1]}" in
VARCHAR2) printf '"%s"\n' "$2" ;;
NUMBER) printf "%d\n" "$2" ;;
DATE) printf "%d\n" "$2" ;;
CHAR) printf "%d\n" "$2" ;;
*) print -u2 "don't know about field '$1'" ;;
esac
}
?
現在我試試它..但你能解釋我的功能嗎?什麼exacly做? –
它說:field1:指定的號碼對此命令無效。 –
首先,告訴我你在這裏的含義:「我有一個數組,它返回從文件中讀取的表的data_type。」 - 你有一個數組變量在ksh腳本中? –