使用项目中的新值到我的 sql 语句而不将该值保存到数据库
Using a new value from an item to my sql statement without saving this value to database
我正在尝试比较我刚刚在我的项目中输入的日期值(:P2007_Session_Date - 它是一个日期选择器 -)与我的 table 中的日期值。这个新值还没有保存在我的数据库中。
我怎样才能做到这一点?
我正在尝试使用 DA 但没有任何反应
时间:
事件:更改,项目:P2007_Session_date
真实操作集值:
SQL 声明
SELECT POLICIES.PRICE
从政策
其中 POLICIES.ACTIVE = 1
和 to_char(**:P2007_Session_Date**, 'YYYY-MM-DD') 在 to_char(POLICIES.START_DATE, 'YYYY-MM-DD') 和 to_char( POLICIES.END_DATE, 'YYYY-MM-DD');
提交项目
:P2007_Session_Date, :P2007_Price
受影响的元素
:P2007_Price
这给了我这个错误 Ajax 调用返回服务器错误 ORA-01722:不接受 table 设置值的数字。
但是当我将查询从 to_char(:P2007_Session_Date, 'YYYY-MM-DD') 更改为 to_char(sysdate, 'YYYY-MM-DD') 时,它起作用了!
问题是我想检查的不是 sysdate,而是用户刚刚输入到 :P2007_Session_Date 项目的值,它尚未存储在数据库中。
顶点项是字符串,无论它们代表什么数据类型。因此,如果页面项目中有日期值,则必须将其转换为 pl/sql 中的日期。 TO_CHAR(:P2007_SESSION_DATE, 'YYYY-MM-DD')
语句不正确,它期望绑定变量 :P2007_SESSION_DATE 的数据类型为 DATE 或 TIMESTAMP,但由于这是一个顶点项,它只是一个字符串。
最简洁的解决方案是只进行日期比较,而不是字符比较(这对您的情况有效)。
试试这个语句:
SELECT
policies.price
FROM
policies
WHERE
policies.active = 1 AND
TO_DATE (:P2007_SESSION_DATE,'YYYY-MM-DD' ) BETWEEN policies.start_date AND policies.end_date
我正在尝试比较我刚刚在我的项目中输入的日期值(:P2007_Session_Date - 它是一个日期选择器 -)与我的 table 中的日期值。这个新值还没有保存在我的数据库中。 我怎样才能做到这一点? 我正在尝试使用 DA 但没有任何反应
时间:
事件:更改,项目:P2007_Session_date
真实操作集值:
SQL 声明
SELECT POLICIES.PRICE 从政策 其中 POLICIES.ACTIVE = 1 和 to_char(**:P2007_Session_Date**, 'YYYY-MM-DD') 在 to_char(POLICIES.START_DATE, 'YYYY-MM-DD') 和 to_char( POLICIES.END_DATE, 'YYYY-MM-DD');
提交项目
:P2007_Session_Date, :P2007_Price
受影响的元素
:P2007_Price
这给了我这个错误 Ajax 调用返回服务器错误 ORA-01722:不接受 table 设置值的数字。 但是当我将查询从 to_char(:P2007_Session_Date, 'YYYY-MM-DD') 更改为 to_char(sysdate, 'YYYY-MM-DD') 时,它起作用了! 问题是我想检查的不是 sysdate,而是用户刚刚输入到 :P2007_Session_Date 项目的值,它尚未存储在数据库中。
顶点项是字符串,无论它们代表什么数据类型。因此,如果页面项目中有日期值,则必须将其转换为 pl/sql 中的日期。 TO_CHAR(:P2007_SESSION_DATE, 'YYYY-MM-DD')
语句不正确,它期望绑定变量 :P2007_SESSION_DATE 的数据类型为 DATE 或 TIMESTAMP,但由于这是一个顶点项,它只是一个字符串。
最简洁的解决方案是只进行日期比较,而不是字符比较(这对您的情况有效)。
试试这个语句:
SELECT
policies.price
FROM
policies
WHERE
policies.active = 1 AND
TO_DATE (:P2007_SESSION_DATE,'YYYY-MM-DD' ) BETWEEN policies.start_date AND policies.end_date