这是PL / SQL代码。我想DBMS输出完整的查询,因为它失败了。
vSql := 'SELECT :p_nomeCampo FROM :vTable WHERE :vPkColumn = :p_id';
EXECUTE IMMEDIATE vSql INTO vOutput USING p_nomeCampo, vTable, vPkColumn, p_id;
答案 0 :(得分:4)
没有直接回答这个问题,但它可能会失败,因为你只能绑定变量值,而不能绑定对象名称;所以这里只有:p_id
有效。你可以做的最好的是:
vSql := 'SELECT ' || p_nomeCampo || ' FROM ' || vTable
|| ' WHERE ' || vPkColumn || ' = :p_id';
当然,您需要确保p_nomeCampo
,vTable
和vPkColumn
的值不受SQL注入的影响。
它有助于显示您所获得的错误,但在这种情况下,这不是直接问题的重点......