问题
我们想验证 Oracle SQL 语句在语法上是否正确,仅引用已知的表、视图、列等。
Oracle 12c 的 OCI – 只能解析
使用 Oracle 12c 的 OCI(Oracle 调用接口),可以先使用创建语句OCIStmtPrepare()
,然后OCIStmtExecute()
使用特殊模式调用OCI_PARSE_ONLY
。这将导致 Oracle 解析语句而不实际执行它。
Oracle 12 的 OCCI – 不可能?
现在,我们为 Oracle 12c 使用 OCCI(Oracle C++ 调用接口)。似乎没有办法强制 Oracle 解析语句而不执行它。当调用该Connection::createStatement()
方法然后调用Statement::status()
返回的语句时,Oracle 会告诉您该语句是,PREPARED
但解析该语句被推迟到该语句实际执行调用 egStatement::execute()
所以似乎没有一种方法可以在不执行的情况下解析该语句。
有人知道使用 OCCI for Oracle 12c 无需执行 SQL 语句即可解析的方法吗?