- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试执行使用空参数值的 native SQL 查询时出现 Oracle 错误。我把它归结为这个测试用例:
String SQL_SELECT =
"select * from act t1 where t1.G074=:G074 AND t1.G542=:G542 AND
nvl(t1.svhlick,' ')=nvl(:svhlick,' ')
and t1.svhlic=:svhlic
and t1.sf$version =
(select max(sf$version) from act t2 where t2.G074=t1.G074 and t2.G542=t1.G542 AND nvl
(t2.svhlick,' ')=nvl(t1.svhlick,' ') and t2.svhlic=t1.svhlic)";
Query q = em.createNativeQuery(SQL_SELECT, Act.class);
….
q.setParameter("svhlick", entity.getSvhlick());
…
the query uses Oracle's NVL
function to handle null
parameters.However, when I run this code, it fails with an error on the q.getResultList ()
call.
The error is as follows:
ORA-01465: invalid hex number
Now, i'm resolved this problem as
q.setParameter("svhlick", (entity.getSvhlick() == null ? " " : entity.getSvhlick()));
但是这个解决方案并不好。
数据库 Oracle 11gR2 win1251 编码。
Netbeans 7.3.1 项目编码 UTF-8。
entity.getSvhlick() - 字符串Oracle 中的 svhlick - varchar2(1)
我认为问题可能是由于不同的编码。
有什么帮助吗?
最佳答案
我遇到了同样的问题并通过指定类型解决了它:
q.setParameter("svhlick", entity.getSvhlick(), StandardBasicTypes.STRING);
关于 hibernate + nvl()= 甲骨文 01465,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18915598/
有时我会在代码中看到一个nvl()函数。对于 Java,它看起来像这样: public static String nvl(String value, String alternateValue) {
我正在尝试分析由离职开发人员编写的现有 Oracle 查询。我不精通 Oracle,我对使用此 DECODE 有点困惑Microfocus COBOL 中的函数app(其中 :BV-POS_YEAR
我有此表,其中NULL是NULL值,而不是字符串NULL: MYCOL -------- NULL example 为什么此查询不返回NULL行? select * from example_so w
select nvl(trunc(null),trunc(sysdate)) from dual; 在执行上述查询时,我收到以下错误 ORA-00932: inconsistent datatypes
我们有一个在 NVL 语句中使用 case 的查询但是我认为可以删除 NVL 请引用以下查询部分 - select f1, NVL(( CASE WHEN PR
select NVL(B.SEQID, A.LVL5_ID) LVL6_ID, NVL(B.NAME, ' ') LVL6_NAME, A.LVL5_ID FROM LVL5 A, ABC B WH
尝试执行使用空参数值的 native SQL 查询时出现 Oracle 错误。我把它归结为这个测试用例: String SQL_SELECT = "select * fro
我有以下代码: SELECT cr_ts, msg_id, info FROM messaging_log WHERE UPPER(INFO) LIKE '%' || TRIM(UPPER(P_INF
我试图在我的数据库中传递一个空值作为其他东西,它似乎在没有这样的 Where 子句的情况下工作 select NVL(column1, '0') column1 from table1 产生这个
我正在做一些从 Oracle 到 MSSQL 的转换,我正在阅读 Oracle 在 B Supported SQL Syntax and Functions 上的指南. 我注意到有人说有一个 NOT
我在 SQL Server 上执行以下查询但出现错误: SELECT DISTINCT t1.p_id "Id", (TO_CHAR("sysdate", 'YYYY') + least(SIGN((
我有一个 Web 表单,允许用户根据传递到过程的参数搜索和编辑 Oracle 表中的记录。这是我的数据: CAE_SEC_ID SEC_CODE APPR_STATUS 1 A
有人知道为什么 Oracle 的 NVL (和 NVL2)函数总是计算第二个参数,即使第一个参数不是 NULL ? 简单测试: CREATE FUNCTION nvl_test RETURN NUMB
我有两个 Oracle 12c (12.1.0.2.0) 数据库,其中一个对于以下查询(使用 SQL Developer 3.2.20.10)返回 'ok',而另一个则返回 ORA-01722:无效数
我在 SQL Server 上执行以下查询但出现错误: SELECT DISTINCT t1.p_id "Id", (TO_CHAR("sysdate", 'YYYY') + least(SIGN((
我正在使用 Java 6 和 Oracle 10。我有一个 java 语句,我想测试 null 或空字符串。 我的代码如下所示: PreparedStatement stmt = null; Stri
一段时间以来,我一直想知道 DECODE 和 NVL 函数的内部工作是如何完成的。如果其中的参数数量更多,DECODE 函数是否会产生更多开销? 此外,NVL 函数是否评估给定的值而不是 NULL,即
我正在尝试运行以下查询: select a.*, case when NVL (SELECT max(b.field1) FROM b where b.fiel
oracle 有一个很好的内置函数,用于 if null,但是我想做 if = 0;有没有一种简单的方法可以做到这一点? nvl(instr(substr(ovrflo_adrs_info,instr
有了这个, set serveroutput on size 900000; DECLARE test VARCHAR(255):=0; BEGIN SELECT id INTO test
我是一名优秀的程序员,十分优秀!