我有一个数组,它返回data_type
从文件中读取的表。例如:
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
.
哦,好的,现在我明白了.. 谢谢!但是..如果我的数组是这样的:
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
}
?