需要有关 PL SQL 查询的帮助 [立即执行]

发布于 2024-10-17 18:29:08 字数 298 浏览 2 评论 0原文

我有这个查询

EXECUTE IMMEDIATE 'UPDATE  ' || dest || ' SET COUNTRY_CODE = :v1 WHERE col_id = :v2 returning rowid into :out' 
          USING l_vc_CountryCode, l_vc_ColId
          returning into l_vc_rowid;

l_vc_rowid 被定义为 varchar2(10);

我试图用谷歌搜索,但找不到问题所在。

I have this query

EXECUTE IMMEDIATE 'UPDATE  ' || dest || ' SET COUNTRY_CODE = :v1 WHERE col_id = :v2 returning rowid into :out' 
          USING l_vc_CountryCode, l_vc_ColId
          returning into l_vc_rowid;

the l_vc_rowid is defined as varchar2(10);

I am trying to google, but couldn't find the problem.

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

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

发布评论

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

评论(1

肤浅与狂妄 2024-10-24 18:29:08

使用sql%rowcount 确定有多少行受到更新的影响。

使用有效的 PL/SQL 函数:

create table tq84_update_test (
  country_code number,
  col_id       varchar2(10)
);


create or replace 
function tq84_update_func (dest         in varchar2, 
                           col_id       in varchar2,
                           country_code in number  
                           )
return varchar2
as
begin

  execute immediate 
 'update ' || dest || ' set country_code = :v1 ' ||
 'where col_id = :v2' 
  using country_code, col_id;

  return sql%rowcount || ' rows updated';
end tq84_update_func;
/


insert into tq84_update_test values (4,'Italy');

exec dbms_output.put_line(tq84_update_func('tq84_update_test', 'foo', 2));

exec dbms_output.put_line(tq84_update_func('tq84_update_test', 'Italy', 9));

select * from tq84_update_test;

Use sql%rowcount to determine how many rows were affected by the update.

With a working PL/SQL function:

create table tq84_update_test (
  country_code number,
  col_id       varchar2(10)
);


create or replace 
function tq84_update_func (dest         in varchar2, 
                           col_id       in varchar2,
                           country_code in number  
                           )
return varchar2
as
begin

  execute immediate 
 'update ' || dest || ' set country_code = :v1 ' ||
 'where col_id = :v2' 
  using country_code, col_id;

  return sql%rowcount || ' rows updated';
end tq84_update_func;
/


insert into tq84_update_test values (4,'Italy');

exec dbms_output.put_line(tq84_update_func('tq84_update_test', 'foo', 2));

exec dbms_output.put_line(tq84_update_func('tq84_update_test', 'Italy', 9));

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