oracle - 与 DBMS_SQL.PARSE 相关的问题

标签 oracle plsql

我有一个类似的查询

queryStr := 'SELECT col1, col2, col3, col4 FROM Table1 WHERE date_created >= ';

然后我看到以下声明

DBMS_SQL.PARSE (cursor_handle, queryStr || ':date', DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE (cursor_handle, 'date', dateVariable);

现在我的问题是,既然查询中没有 :date 占位符,即 queryStr ,为什么 dbms_sql.parse 使用变量 :date

最佳答案

您的代码相当于:

DBMS_SQL.PARSE (cursor_handle,
                'SELECT col1, col2, col3, col4 
                   FROM Table1 
                  WHERE date_created >= :date', 
                DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE (cursor_handle, 'date', dateVariable);

在第一个语句中解析查询。该语句有一个绑定(bind)变量 (:date)。该绑定(bind)变量的值在第二条语句中给出。

关于oracle - 与 DBMS_SQL.PARSE 相关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5314506/

相关文章:

database - 数据库游标是否获取基础数据的更改?

oracle - 使用触发器中的立即执行引用新变量

sql - Oracle:排除用于触发触发器的一列的更新

sql - 甲骨文基本问题

sql - 在特定场景下查询获取oracle中的先前日期

oracle - 如何创建选择列表而不指定其值列表?

sql - 在运行复制数据事件之前从目标表中删除数据

Oracle apex apex_application.g_f0x 没有获取表项

plsql - 在 PLSQL 条件逻辑中使用子查询;错误 PLS-00405

oracle - Oracle PL/SQL-立即输出/控制台打印的提示