SQLserver 数据库名称包含小数点和减号报错[ bug ]
在提交 issue 前,请查阅以下资源,请先进行搜索来保证没有类似的 issue。 文档 | FAQ
重现步骤
SQL上线-->SQL提交2.点选到对应的SQLserver数据库进行操作 3.点选包含有小数点或者包含减号的数据库名称的时候就会报错如下: ('42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]“.0”附近有语法错误。 (102) (SQLExecDirectW)') -->
期待结果和实际结果
期待结果: 数据库名称特殊符号做处理 实际结果:
截图
错误日志
版本信息
应用版本/分支:1.8.0
部署方式:Docker
SQLserver数据库 库名里面包含小数点和减号的时候报错如下: ('42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]“.0”附近有语法错误。 (102) (SQLExecDirectW)')
sqlserver 是我提的pr, 但我手边既没有 sqlserver, 公司也没有部署 archery, 麻烦你看看如何修复, 然后顺手提个 pr 吧
sqlserver 是我提的pr, 但我手边既没有 sqlserver, 公司也没有部署 archery, 麻烦你看看如何修复, 然后顺手提个 pr 吧
pr啥意思,我是运维,不具备开发能力,解决不了这个问题
https://github.com/hhyo/Archery/blob/217d7537609e9cc28c4722096c23f4485dcd3b8e/sql/engines/mssql.py#L51-L71 你看看这里拼出来的 sql 语句有什么问题吗? 有没有什么错误? 你可以修改看看
结果如下: [SQL]select c.name ColumnName, t.name ColumnType, c.length ColumnLength, c.scale ColumnScale, c.isnullable ColumnNull, case when i.id is not null then 'Y' else 'N' end TablePk from (select name,id,uid from testdb.5..sysobjects where (xtype='U' or xtype='V') ) o inner join testdb.5..syscolumns c on o.id=c.id inner join testdb.5..systypes t on c.xtype=t.xusertype left join testdb.5..sysusers u on u.uid=o.uid left join (select name,id,uid,parent_obj from testdb.5..sysobjects where xtype='PK' ) opk on opk.parent_obj=o.id left join (select id,name,indid from testdb.5..sysindexes) ie on ie.id=o.id and ie.name=opk.name left join testdb.5..sysindexkeys i on i.id=o.id and i.colid=c.colid and i.indid=ie.indid WHERE O.name NOT LIKE 'MS%' AND O.name NOT LIKE 'SY%' and O.name='{1}' order by o.name,c.colid
[Err] 42000 - [SQL Server]“.0”附近有语法错误。 42000 - [SQL Server]“.0”附近有语法错误。 42000 - [SQL Server]“.0”附近有语法错误。
你还不懂我意思吗? 靠你了, 我没环境开发, 代码就在这, 就是这块代码出的问题, 你来改, 改好了有空提个 pr.
请问一下我直接修改docker文件里面的/opt/archery/sql/engines/mssql.py 然后重启docker能用吗?我把这个文件69行改成了: order by o.name,c.colid""".format('"{}"'.format(db_name), tb_name) 还是不行
你可以加上一些 print , 把生成的 describe 语句打出来, 看看有没有生效, 有日志会好看一些
你好,我是用docker-compose安装的,我发现我在archery容器内部修改了/opt/Archery/sql/engines/mssql.py 怎么重启容器和操作系统,我修改的配置都不生效呢?
好了。解决了,我提交代码吧
感谢!
你已经很久没有回复这个issue了,如果没有进一步的信息的话, 会作为不活跃issue关闭, 感谢你对本项目的贡献。 This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.