Weblogic。调用没有模式名称的DB2存储过程(属性currentSchema)。
我有一个在WebLogic上运行的Java应用程序.该应用程序需要访问DB2数据库中的存储过程,因此,通过其JNDI名称配置JDBC数据源. 数据源: ClassDriver: com.ibm.db2.jcc.DB2Driver Properties: user=MYUSER DatabaseName=MYDB 以下示例按预期工作. Context env = null; DataSource pool = null; Hashtable ht = new Hashtable(); ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); ht.put(Context.PROVIDER_URL,"t3://myserver:7777"); env = new InitialContext(ht); pool = (DataSource) env.look
0 2023-12-01
编程技术问答社区
如何处理陈旧的连接?
我们是一个J2EE应用程序,在WebSphere 6.1上使用大型机/DB2后端上使用Struts-Ejb-Hibernate,该应用程序最近转移到了生产中. 我们将获得过时的连接例外当用户第一次登录应用程序或某些时候,此例外发生. 在第二次尝试登录到应用程序的用户.我收到的确切错误消息是 empcom.ibm.websphere.ce.cm.StaleConnectionException: Execution failed due to a distribution protocol error that caused deallocation of the conversation. The command requested could not be completed because of a permanent error condition detected at the target system. DB2ConnectionCorrelato
0 2023-11-29
编程技术问答社区
在visual studio 2015上用实体框架6访问DB2
我正在尝试通过Visual Studio 2015和实体框架访问Z/OS的DB2 V10 6. 经过一项研究,我发现了一些有希望的文章-e 但是使用的示例用于2010年,同一加载项未安装2015年. 通过VS 2015 + EF6的组合,有什么更好的方法吗? 我错过了什么吗? 注意:我没有使用第三部分软件来完成任务的奢侈. 我尝试安装" IBM数据库加载程序"(从上面的链接本身获取).这不是成功的,以下是您参考的安装日志详细信息(如果有帮助) Property(C): GENERIC_DLG_TITLE = IBM Database Add-Ins for Visual Studio Setup Property(C): p_DotNetFWInstalled = YES Property(C): p_DotNetFW11Installed = NO Property(C): p_DotNetFW20Installed = YES Property(C
0 2023-11-24
编程技术问答社区
发布的报告不工作-数据库登录失败错误
我正在开发一个简单的Web应用程序,该应用程序在VS 2013上创建了3个报告,原因是这些报告从开发人员模式下运行良好,但是当我发布网站时,它们给我"数据库登录失败"错误.是什么造成这一点? VS安装在我发布报告的同一款服务器上.我创建了一个本地管理用户,其信息与IIS身份验证的ODBC连接登录用户完全相同,但仍然没有运气. 以下是我的代码: public partial class OpenWOsWebForm : System.Web.UI.Page { ConnectionInfo EPAKconnectionInfo = new ConnectionInfo(); protected void SetConnectionInfo() { EPAKconnectionInfo.ServerName = ConfigurationManager.AppSettings["EPAK_SERV
0 2023-11-24
编程技术问答社区
如何在SELECT中使用变量?
我使用IBM®DataStudio v4.1.0.1,db2 v10.5. 这是我的存储过程. CREATE PROCEDURE test () DYNAMIC RESULT SETS 1 P1: BEGIN DECLARE ageInterval INTEGER; SELECT (MAX("age")-min("age"))/5 INTO ageInterval FROM "Schema1"."adult"; create view "DiscreteTrain" as select "age"/ageInterval, "income" from "Schema1"."train"; END P1 当我部署它时,数据工作室说 db2admin.test:15:" ageInterval"在使用的上下文中无效. sqlcode = -206,sqlstate = 42703,驱动程序= 3.67.28 我
2 2023-11-19
编程技术问答社区
如果表被删除,现有的DB2视图会怎样?
如果我们在现有的DB2表上创建了一个视图,然后丢弃表.视图会发生什么? 解决方案 视图变得无效/不起作用.尝试从中选择会失败. 尝试: create table TEST_TABLE ( TEST_COL INTEGER ); INSERT INTO TEST_TABLE VALUES(1); SELECT * FROM TEST_TABLE; create view TEST_VIEW AS SELECT * FROM TEST_TABLE; SELECT * FROM TEST_VIEW; DROP TABLE TEST_TABLE; SELECT * FROM TEST_VIEW; 最后一个语句给出了错误: [IBM][CLI Driver][DB2/NT] SQL0575N View or materialized query table "TEST_VIEW" cannot be used because it has been ma
0 2023-11-19
编程技术问答社区
Excel和DB2的连接
我必须检查是否已经使用CLI/ODBC驱动程序建立了Excel和DB2之间的连接. 为此,我打算编写一个批处理文件,在其中我将调用Excel表,该表又将自动执行一个宏,该宏将从sysibm.sysibm.sysdummy1表中带出一些虚拟数据. 我需要与数据库连接建立连接的代码,并通过在建立连接建立连接的情况下提供一些成功消息来检查连接是否已建立,如果没有建立连接,则会出现故障消息. (可能有一些问题发生的解释) 解决方案 您可以使用ADODB(ActiveX Data对象)在DB2服务器和Excel之间建立ODBC(或OLEDB)连接.有关示例连接字符串,请参见此链接. 此链接将向您显示与ADODB一起使用的VBA代码,以连接到您的数据库: 编辑:这里有一些快速且肮脏的示例代码.将.connectionstring =部分替换为设置的正确连接字符串. Dim cn As ADODB.Connection Dim rs As New ADODB.Recor
0 2023-11-16
编程技术问答社区
64位系统上的COM+VB6应用程序: 当连接到DB2时,IBM CLI驱动交易错误
我们正在尝试迁移VB6中开发的Intranet Web应用程序,从 Windows Server 2003 到 Windows Server 2008 r2 ,我们正面临两个阶段提交的问题Microsoft SQL Server 2008和Z/OS大型机上DB2之间的交易. 在Windows Server 2008 R2上,已安装了DB2 v9.7.500.702 fixpack 8(64位),在com+应用中注册的VB6组件,在尝试在SQL Server上更新交易中的一个表和DB2上的另一个表时,返回此错误: [ibm] [CLI驱动程序] SQL0998N发生在交易期间或 启发式处理.原因代码=" 16".子代码=" 2-80004005". sqlstate = 58005 在调试中运行VB6应用程序,在Open()方法上调用ADODB.Connection对象(DB2 Connection)时提高了异常. db2diag 显示了这一点: 2013-0
0 2023-11-15
编程技术问答社区
在DB2 SQL中声明一个变量
有人知道如何在DB2中运行以下SQL Server代码吗? 我正在转换SQL Server脚本,以便它们将在DB2系统上运行,并且在DB2中使用变量时遇到一些问题. T-SQL代码 这显然不是实际的代码,而是一个例子. DECLARE @INPUT_VALUE INT SET INPUT_VALUE = 4756 SELECT * FROM TABLE1 WHERE TABLE1.COLUMN1 = @INPUT_VALUE 解决方案 我假设这个 在过程,函数或触发定义或动态SQL语句中(嵌入在主机程序中): BEGIN ATOMIC DECLARE example VARCHAR(15) ; SET example = 'welcome' ; SELECT * FROM tablename WHERE column1 = example ; END 或(在任何环境中): WITH t(example) AS (VALUE
4 2023-11-13
编程技术问答社区
DB2的LIKE操作符有奇怪的长度限制
我发现了DB2 v9.7和SQL LIKE操作员的有趣问题.检查一下: -- this works and returns one record select 1 from SYSIBM.DUAL where 'abc' like concat('a', 'bc') -- this doesn't work select 1 from SYSIBM.DUAL where 'abc' like concat(cast('a' as varchar(2001)), cast('bc' as varchar(2000))) -- It causes this error (from JDBC): -- No authorized routine named "LIKE" of type "FUNCTION" having compatible -- arguments was found.. SQLCODE=-440, SQLSTATE=42884, DRIVER=4.7.8
0 2023-11-13
编程技术问答社区
DB2 VARCHAR unicode数据存储
我们当前正在使用VARCHAR将文本数据存储在DB2中,但是我们遇到的问题是,指定的VARCHAR长度与文本长度不同,因为在DB2 VARCHAR长度中指定的是UTF-8数据长度,该长度可能会根据存储的文本数据.例如,某些文本包含来自不同语言的字符,因此一些文本有500个字符不能保存在varchar(500)和等等中. 现在,我们计划迁移到Vargraphic.我需要知道将vargraphic用于将Unicode文本数据存储在DB2中的局限性. 使用Vargraphic有任何问题吗? 解决方案 db2没有检查数据实际上是双字节字符串,但假定必须是.通常,驾驶员会为您进行适当的转换,但有一天您可能会遇到一些错误.虽然不太可能. 如果您在查询中使用联合数据库vargraphic支持可能会完全失败.总体而言,Vargraphic数据类型的错误报告数量很高.对其的支持可能不像其他数据类型那样经过很好的测试和尝试. vargraphic Will使用Unicode数据库(
8 2023-11-13
编程技术问答社区
DB2: 如何验证字符串格式的日期,这是一个varchar数据类型
我需要知道wheather varchar类型的列中的数据是正确的日期格式. 我必须在DB2中做同样的事情. 我通过使用SimpleDateFormat()()和date.parse()函数在Java中完成了此操作. 我正在发布我的Java代码以验证一个字符串 private boolean isValidDate(String date) { try{ DateFormat d = new SimpleDateFormat("yyyyMMdd"); d.setLenient(false); d.parse(date); return true; } catch(Exception e){ return false; } } ,但现在我必须在 db2数据库中进行相同的操作.我可以在db2 中使用任何功能或过程 我在表列中的数据是这样.. 2014
0 2023-11-13
编程技术问答社区
在转换前验证日期,又称ISDATE()等效。
DB2版本是9.7.0.7 我有一个平坦的文件,需要在插入生产表中充分验证.为了进行分析,我将其解析到一个表格中,所有列均为VARCHAR. . 任务之一是验证日期.我需要能够找到特定的无效日期,以报告范围(频率)和解决方案(原因). . i在Sybase和SQL Server中使用ISDATE(),该服务器在有效日期返回1,而无效日期为0.在Teradata,我将加入到系统目录中的SYS_CALENDAR表.自从我上次进入DB2环境以来已经过去了大约15年,但我认为类似物都不存在. 在此DB2环境中,我的角色仅限于QA,这意味着我无法创建T-SQL过程或UDFS. 这个线程很聪明,让我认为可能有一些常见的表表达逻辑可以在查询中使用: 但是,一个人仅作为解决方案而跌落,因为它仅考虑格式 - 存在无效(但格式正确)的日期,例如'2016-04-31'或'2016-02-30'将引起错误查询不会返回行. 我需要返回所有行,识别每个行是有效还是无效(或者只是返回无效
0 2023-11-12
编程技术问答社区
DB2 UTF-8编码。Umlaut改为CHAR(1)?
UTF-8编码DB2数据库中的" char(1)"是什么? 我可以将特殊字符(例如,一个在UTF-8中带2个八位字)插入Char(1)的一列? 或utf-8中的char(1)总是意味着它具有一个字节/八位字的能力,即,将umlaut插入其中会失败? 我阅读了这个有趣的 developerworks 文章,文章,文章但这对我的简单问题将深入... 解决方案 这取决于. :) db2引入了code units,以帮助设计基于字符数量而不是字节数的弦型列. 数据库配置回到您的问题:如果您没有指定任何内容,则插入需要2个八位字的特殊角色(1)可能会失败.如果指定了CodeUnits32,则将成功.
2 2023-11-12
编程技术问答社区
引用IBM.Data.DB2中的代码使得该组件在我的解决方案的其他部分不可用。
我有一个带有三个组件的C#控制台应用程序:Main,Common和Utilities. 在Main汇编中的文件中,Main.cs,我有一行: using Utilities; 在Common汇编内的目录中,我有dll IBM.Data.DB2.dll. 在Utilities组件中,我有一个源模块,该模块访问 dll . 公用事业有参考IBM.Data.DB2. 在此组件中的源文件中,Util.cs,我有一行: using IBM.Data.DB2; 如果在此文件中的一种方法中,我对DB2组件中的代码进行任何引用,如: DbConnection c = new DB2Connection( _connectString ); 我会遇到一个错误,以编译Main汇编,说明找不到名称空间名称Utilities. Utilities在有或没有线路的情况下可以罚款.如果我评论上述行,则一切都很好. 解决方案 一个有用的同事在大约五秒钟内为我解决了这个
2 2023-11-11
编程技术问答社区
DB2和Java。通过GUI将数据添加到数据库。
首先,我在程序中创建一个搜索功能,然后在将数据添加到数据库中实现了相同的逻辑,但是搜索函数可行,并且添加函数没有(SQLEXCEPTION).我创建了一个名为 db2 名称名称的表,只有一个列 fullname .您是否仍需要创建一个新的查询才能将数据添加到表中?或不?我想通过GUI将数据添加到数据库中. 这是我的Java代码: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; public class ConnectAndSearchDB extends JFrame implements ActionListener { private JTextField fieldSearch,fieldAdd; private JButton searchB,addB; private Connection connection;
2 2023-11-11
编程技术问答社区
如何使用DB2函数查找字符串中每个字符的ASCII?
我已经在db2中写了一个函数 - 那是在特定列中计算记录的ASCII.我想提供一些帮助,因为我想检查字符串中每个字符的ASCII,如果该记录的ASCII大于127. . BEGIN ATOMIC DECLARE POS, INT; IF INSTR IS NULL THEN RETURN NULL; END IF; SET ( POS, LEN )=( 1, LENGTH(INSTR) ); WHILE POS 128 THEN RETURN 'Y'; END IF; SET POS = POS + 1; END WHILE; RETURN 'N'; 解决方案 为什么要计算该列中每个字符的ASCII,如果目标只是为了获得这样的行? SELECT STR FROM ( VALUES 'Hello, world' , 'П
0 2023-11-10
编程技术问答社区
DB2的Mule数据库连接器url格式不正确
我正在尝试使用mule的数据库连接器来连接到DB2数据库,但我无法弄清数据库URL的正确格式.我使用数据库URL 创建了一个通用数据库配置全局元素 jdbc:db2://db01.dev.myserver.org:50000/mydb;User=test;Password=secret 和驱动程序 com.ibm.db2.jcc.DB2Driver 当我单击测试连接时,它说 Test connection failed: Cannot get connection for URL jdbc:db2://db01.dev.myserver.org:50000/mydb;User=test;Password=secret : [ibm][db2][jcc][t4][10205][11234] Null userid is not supported. 我应该如何将用户名和密码放在URL中? 谢谢! 解决方案 JDBC属性,例如user和passwo
2 2023-11-09
编程技术问答社区
DB2合并upsert得到'未找到MERGE的行'错误
我正在尝试在iSeries db2上进行合并语句的基本升级insert-or-or-or-statement"> db2是否具有"插入或更新"语句?和 http://db2performance.blogspot.com/2011/12/merge-make-make-your-upserts-quick.html .执行后,它会给我Row not found for MERGE. SQLSTATE=02000而不是插入行.由于我在语句中有when not matched then insert,为什么它会返回错误而不是插入错误?我全神贯注,没有看到这个特殊的问题. 这是我正在使用的语句: merge into UFDFTRN as T using ( select * from UFDFTRN where DFCNO = 354 and DFINV = 1179 and DFLC = 1 and DFDATE = '2017-01-31'
2 2023-11-09
编程技术问答社区
如何解决SQL0418N错误
我正在使用以下语句将一些数据更新/插入表格,如果我在没有参数的情况下运行它,那很好.但是,一旦我尝试使用投掷的参数执行它: sql0418n-语句包含未型参数标记,默认关键字或无效. 的空值的使用. 我已经阅读了错误信息在这里,但我仍然在努力,为什么我的语句不执行. --This statement works MERGE Into AB.Testing_Table A USING (VALUES('TEST', 'P')) B(TEST_ID, "ACTION") ON (A.TEST_ID = B.TEST_ID) WHEN NOT MATCHED THEN INSERT (TEST_ID, "ACTION") VALUES ('TEST', 'P') WHEN MATCHED THEN UPDATE SET TEST_ID = 'TEST' ,"ACTION" = 'P'; --This statement fails with error SQL0418N
2 2023-11-09
编程技术问答社区