我有一个名为test.sh的shell文件,它调用其他sql文件' table.sql'。 ' table.sql'文件将创建一些表,但我想在特定的模式中创建表' bird'。
sql文件的内容。
create schema bird; --bird should not be hard coded it should be in variable
set search_path to 'bird';
create table bird.sparrow(id int, name varchar2(20));
shell文件的内容。
dbname=$1
cnport=$2
schemaname=$3
filename=$4
gsql -d ${dbname} -p ${cnport} -f ${filenam} #[how to give schema name here so that it can be used in table.sql without hardcoding]
我将像这样执行我的shell文件
sh test.sh db1 9999 bird table.sql
答案 0 :(得分:2)
在shell中更容易,例如:
dbname=$1
cnport=$2
schemaname=$3
filename=$4
gsql -d ${dbname} -p ${cnport} <<EOF
create schema $3; --bird should not be hard coded it should be in variable
set search_path to '$3';
create table bird.sparrow(id int, name varchar2(20));
EOF
否则使用psql变量