如何通过ADBC本地SQL获得行数



我可以使用Open SQL执行以下查询:

select count(*) into lv_count
from prcd_elements client specified 
where waerk = 'USD'

我如何做同样的事情与ABAP数据库连接(ADBC)本地SQL?

我已经尝试了以下操作,但它给了我一个异常…我不确定lt_table需要什么数据类型来保存计数,类CL_SQL_RESULT_SET(由execute_query返回)似乎需要一个本地表。

data lt_table type standard table of prcd_elements.
data(lo_sql) = new cl_sql_statement( ).
data(lo_result) = lo_sql->execute_query(
  |select count(*) from prcd_elements where waerk = 'USD'|
).
lo_result->set_param_table( REF #( lt_table ) ).
lo_result->next_package( ).
lo_result->close( ).

谢谢!

在一些神秘的捐助者的帮助下,我想出了这个问题。我需要创建一个具有I (Integer)类型的单列的内部表,然后从这个内部表中提取计数。

types:
  begin of s_count,
    count type i,
  end of s_count.
data lt_table type standard table of s_count.
data(lo_sql) = new cl_sql_statement( ).
data(lo_result) = lo_sql->execute_query(
  |select count(*) from prcd_elements where waerk = 'USD'|
).
lo_result->set_param_table( REF #( lt_table ) ).
lo_result->next_package( ).
lo_result->close( ).
data(lv_count) = lt_table[ 1 ]-count.

也可以使用变量代替内部表;

data lv_count type i.
data(lo_sql) = new cl_sql_statement( ).
lo_sql->execute_query(select count(*) into :lv_count from prcd_elements where waerk = 'USD').

相关内容

  • 没有找到相关文章

最新更新