当前位置: 首页 > 知识库问答 >
问题:

不支持从源代码页“”到目标代码页“”的SQL0332N字符转换

令狐新翰
2023-03-14

我正在尝试从连接到IBM DB2数据库。NET 5控制台应用程序。在本地Docker实例中,这对DB2 LUW很好,但在连接到z/OS大型机实例时失败。

服务器:

  • IBM DB2 v11.5
  • z/OS

客户:

  • 。NET 5控制台应用程序
  • IBM。数据Core(v3.1.0.400)
  • IBM数据服务器驱动程序(v11.5)

错误:

IBM.Data.DB2.Core.DB2Exception (0x80004005): ERROR [57017] [IBM] SQL0332N  Character conversion from the source code page "" to the target code page "" is not supported.  SQLSTATE=57017
    at IBM.Data.DB2.Core.DB2ConnPool.Open(DB2Connection connection, String& szConnectionString, DB2ConnSettings& ppSettings, Object& ppConn)
    at IBM.Data.DB2.Core.DB2Connection.Open()
    at <my code>

连接字符串:

Database=<redacted>;User ID=<redacted>;Password=<redacted>;Server=<redacted>:448;Persist Security Info=True;CurrentSchema=<redacted>;Connect Timeout=30

打开连接:

var connection = new DB2Connection(connectionString);

try
{
    connection.Open();
}
catch (DB2Exception e)
{
    logger.LogError("Unable to access DB2 instance");
    logger.LogError(e.ToString());

    throw new DbAccessAcception(e);
}

我正在测试的数据库用户已经被另一个使用。NET程序连接到此数据库,尽管该应用程序较旧(. NET Framework 3.5)。

我所尝试的:

  • 使用环境html" target="_blank">变量DB2CODEPAGE以及连接字符串CodePage参数,将代码页设置为1200、1208或1252;没有更改错误消息
  • 已验证所有软件(DB2、DB2 DSDRIVER、NET provider)都是v11.5
  • 已验证我可以使用db2cli连接和运行查询。exe

现在怎么办?有什么地方我可以/应该设置DB2服务器类型吗?例如,z/OS vs LUW?请注意,我没有使用EntityFramework,只是直接在该Connection对象上执行命令(尽管错误在此之前出现)。

共有1个答案

萧越泽
2023-03-14

我们已经解决了这个问题。有两个变化要做,这无疑使事情变得复杂。

  1. 我们确实需要将DB2CODEPAGE环境变量设置为1208

进行这两项更改使应用程序正常工作。

连接到本地Docker实例是可行的,因为我为该前缀设置了实际的架构,没有意识到prod实例的配置有所不同。

 类似资料:
  • <?php $http = HttpRequest::newSession(); $response = $http->get('http://www.baidu.com/'); $content = $response->body(); // 网页源码

  • 用多页分页组件,可以为你的网站或者应用提供分页链接,或者简单分页。 默认分页 简单的分页灵感来自Rdio,对应用和搜索结果来说特别棒。大的块很难漏掉、容易缩放,提供大的点击区域。 <nav> <ul class="pagination"> <li> <a href="#" aria-label="Previous"> <span aria-hidde

  • 我可能会对遗留项目进行一些交叉编译,并且在最近的JDK中我注意到,对于、和JVM参数,我们仅限于一些特定的版本。 如何获得这些参数的支持版本?

  • 问题内容: 在Ubuntu 12.04上从源代码构建Python 3.2.3时,zlib模块不可用。 我从python.org下载了官方的源代码发行版,并尝试使用以下命令来构建和安装它。 make命令输出包括以下内容。 运行并启动解释器后,无法导入模块。 我确认该软件包已安装在我的系统上。 我也发现了类似的问题,建议将标志添加到命令中。但是,这将返回一个错误,它是无法识别的选项,并且无效。 问题答

  • 对于我的应用程序,我需要显示一个系统字体列表,但过滤掉所有不支持20种预定义语言的字体(这一套是硬编码的),只显示那些支持的。 我可以通过调用获得可用字体的列表。 仅知道该列表中的字体名称,如何检查该字体支持哪些字符集(代码页)(有实际的字母)? 例如,像Arial或Times New Roman这样的通用字体几乎包含所有欧洲语言的字符,包括西里尔文(还有中文等等)。然而,许多不太常见的字体通常只

  • 我读了我们编写源代码的每一个地方(高级语言),编译器将其转换为机器代码(低级语言)。然后我读到有一个汇编程序,它将汇编代码转换为机器代码。然后在区分编译器和解释器时,我读到编译器首先将整个代码转换为目标代码,而解释器通过跳过目标代码直接转换为机器代码。现在我有困惑,我想到了以下问题: 从汇编代码出来的地方,编译器是否直接将源代码转换为机器代码? 目标代码和机器代码有什么区别? 谁将源代码转换为汇编