zhubin 发表于 2024-8-14 16:34:12

AR16 Docker llinux环境下 ODBC连接oracle异常

1.第一次遇到的异常

docker 镜像中加入unixODBC 解决
2.再次运行,异常提示为

尝试docker 中加入,没起效果


需要怎么做才可以正常使用,给出具体步骤

Felix.Li 发表于 2024-8-15 18:53:29

您这个其实牵扯几个步骤

1.给docker环境(以linux_centos举例)安装ODBC。可以参考:
https://gcdn.grapecity.com.cn/showtopic-142045-1-6.html

2.下载oracle ODBC。您可以参考这个:
https://www.oracle.com/cn/database/technologies/releasenote-odbc-ic.html

基本应该没有什么问题

zhubin 发表于 2024-8-16 16:41:57

Felix.Li 发表于 2024-8-15 18:53
您这个其实牵扯几个步骤

1.给docker环境(以linux_centos举例)安装ODBC。可以参考:


有Oracle的教程吗,里面mysql的 odbc配置啥的和oracle不一样吧

Eden.Sun 发表于 2024-8-19 13:51:19

zhubin 发表于 2024-8-16 16:41
有Oracle的教程吗,里面mysql的 odbc配置啥的和oracle不一样吧

您好,这个目前没有。您可以在oracle官网上找找。docker 容器实质上也是一个linux环境,您看看楼上版主提供的oracle的网址试试。

zhubin 发表于 2024-8-29 21:16:39

Eden.Sun 发表于 2024-8-19 13:51
您好,这个目前没有。您可以在oracle官网上找找。docker 容器实质上也是一个linux环境,您看看楼上版主提 ...

目前尝试docker中安装unixODBC 和oracle odbc环境后还是不行,


还要什么思路可以解决这个问题嘛,另外问下https://github.com/activereports ... ctiveReports.config   这个配置文件干嘛的,有关系嘛,之前window环境没有这个也正常可以OD

zhubin 发表于 2024-8-29 21:18:12

Felix.Li 发表于 2024-9-2 12:09:27

目前还有几个思路。第一个试一下ODBC是不是能直接连接:

可以如下测试一下:
编辑 /etc/odbcinst.ini
配置oracle的驱动

Description = Oracle Instant Client
Driver = /path/to/instantclient/libsqora.so.12.1# 根据你的版本调整路径编辑 /etc/odbc.ini:

Description = My Oracle Database
Driver = Oracle Instant Client
ServerName = //hostname:port/service_name测试连接:
isql -v MyOracleDB username password
其次,ODBC是分32位和64位,而咱们项目发布的时候,也是区分32位和64位的。
保证这两个也一样

zhubin 发表于 2024-9-20 11:30:19

目前docker 的linux环境镜像 可以ODBC连接环境了,但是目前有二个问题
1.ODBC连接时,指定的Driver {参数} 里面的参数无法识别,会提示找不到, 只能指定容器内的文件路径


2.原本可以的添加查询参数,数据集 @查询参数变量在 sqlserver / oracle 环境中都可以的,现在在linux(docker)环境中ODBC 连接oracle数据库(目前只测试到ORACLE) 原本可以的 @无法使用,只能用 :了

Felix.Li 发表于 2024-9-23 17:42:31

您好,给您说一下这个。

1.这个ODBC驱动的地方您可以看一下是不是存在大括号转义的情况。因为有些时候,您的字符串里面本身有 {}   和表达式的 {}重复了,如果存在这个情况,本身的大括号需要写成这样: {{}   而表达式的是 {@参数}
其次就是您可以把表达式直接复制出来,用文本框看一下对不对
2.这个确实有这个情况,默认@的,是我们提供的连接方法以及查询方法,所以@我们可以配合参数的写法,直接查询生效,但是ODBC这块主要依靠的是ODBC,而: 类似于ODBC的占位符了。如果要用表达式或者参数的话,其实也可以@ 或者 : 都不用。直接在查询里面用表达式: {表达式}   只要保证最后表达式翻译过来的最终结果,是一个可执行的sql即可

zhubin 发表于 2024-10-18 15:16:38

Felix.Li 发表于 2024-9-23 17:42
您好,给您说一下这个。

1.这个ODBC驱动的地方您可以看一下是不是存在大括号转义的情况。因为有些时候, ...

考虑到兼容SQL server 和ORACLE 是可以采用直接表达式的方式写数据集。这个没问题
但是目前发现了很奇怪的现象,ODBC 数据库连接正常,但是渲染的时候,AR内置的请求404,同样参数再次模拟请求或者重复触发几次,有可能就能通过



然后就一直调用 keepalive ,偶尔也会加载出来,但是只有第一页,且后续预览还是异常


另外一个点就是使用SQLSERVER 数据集连接则不会发送这样的问题,为什么


页: [1] 2 3
查看完整版本: AR16 Docker llinux环境下 ODBC连接oracle异常