phoenix psql.py 执行sql遇到的错误

本文详细解析了org.apache.phoenix.exception.PhoenixParserException错误的出现原因,通常是因为从其他编辑器复制的代码中存在特殊或不兼容的空格字符。文章提供了简单有效的解决方法,只需手动重新输入代码中的空格,无论是2个、3个还是4个空格均可解决问题。

org.apache.phoenix.exception.PhoenixParserException: ERROR 601 (42P00): Syntax error. Unexpected char: ' '

 

原因很简单:

 

从其他编辑器,copy的代码,代码中空格存在一些问题。我们再次编辑,手敲空格即可。2~4个都行。

要在psql执行SQL文件时输出错误日志,可以通过以下两种方式实现: ### 方式一:开启PostgreSQLSQL语句日志收集 对`postgresql.conf`配置文件中下面项进行配置,示例如下: ```plaintext #是否开启日志收集(包括系统日志、错误日志等) logging_collector = on #日志文件目录。相对于$PGDATA的子目录 log_directory = 'log' #日志文件名 log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' #日志文件权限。默认0600。如果希望服务器上其他用户也能读取则0644(存在泄露信息风险) log_file_mode = 0600 #按日志文件时长切换日志。默认1d表示24小时。0为不按时长切换 log_rotation_age = 1d #按日志文件大小切换日志。默认10MB。 0为不按大小切换 log_rotation_size = 0 #日志内容项定义 log_line_prefix = '%m [%p] %a %u %d %r ' #------- 以下与记录SQL语句密切相关 ------- #记录SQL范围,类型可为:none, ddl, mod, all log_statement = 'mod' #记录语句执行时长(单位毫秒)。超过本阈值才对语句执行时长进行记录 # -1 is disabled, # 0 logs all statements and their durations # > 0 logs only statements running at least this number of milliseconds log_min_duration_statement = 0 #是否记录连接创建(例如登录) log_connections = on #是否记录连接断开(例如登出) log_disconnections = on #是否记录获取锁超时。当会话获取lock时长大于等于deadlock_timeout配置则记录 log_lock_waits = on ``` 配置完成后,重启PostgreSQL服务,之后psql执行SQL文件产生的错误日志会记录在指定的日志文件中 [^3]。 ### 方式二:重定向标准错误输出 在执行SQL文件时,将标准错误输出重定向到一个文件中。假设要执行的`.sql`文件叫做`d1.sql`,存放路径为`/mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/d1.sql`,错误日志文件为`error.log`,可以使用以下命令: ```bash psql -f /mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/d1.sql 2> error.log ``` 这样,psql执行SQL文件时产生的错误信息会被写入`error.log`文件中 [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值