与 DBMS_SQL.PARSE 相关的问题

发布于 2024-10-23 16:00:34 字数 413 浏览 4 评论 0原文

我有一个类似的查询

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);

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

I have a query like

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

and then i see the following statement

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

Now my question is, how come dbms_sql.parse is using the variable :date since there is no :date placeholder in the query i.e. queryStr?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乖乖 2024-10-30 16:00:34

您的代码相当于:

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);

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

your code is equivalent to this:

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);

A query is parsed in the first statement. This statement has a bind variable (:date). The value of this bind variable is given in the second statement.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文