我有一个类似的查询
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/