在PSQL环境执行./insert_data.sh脚本报'.'附近语法错误求助
解决PSQL环境中执行shell脚本报错“syntax error at or near "."”的问题
错误原因
你在psql交互式命令行中输入了shell脚本执行命令./insert_data.sh,但psql仅能识别SQL语句,无法解析shell脚本的语法,因此触发该错误。
解决步骤
- 退出psql交互式环境:输入
\q并回车,回到系统shell终端(如bash/zsh)。 - 赋予脚本执行权限(若未设置):执行命令
chmod +x insert_data.sh。 - 在shell终端中执行脚本:直接输入
./insert_data.sh并回车,脚本会通过内部的psql命令连接数据库完成数据插入操作。
额外建议
- 脚本中还有未完成的逻辑(如获取course_id、插入课程及关联表数据),需补充完整后才能实现完整的导入功能。
- 为避免SQL注入风险,建议使用参数化查询替代直接拼接变量。例如将插入专业的语句修改为:
这样可以避免单引号转义等问题,提升脚本安全性。INSERT_MAJOR_RESULT=$($PSQL "INSERT INTO majors(major) VALUES($1)" -v major="$MAJOR")
内容的提问来源于stack exchange,提问作者A. S.
相关产品推荐
相关产品推荐

