我可以使用Open SQL执行以下查询:
select count(*) into lv_count
from prcd_elements client specified
where waerk = 'USD'
如何使用ABAP数据库连接(ADBC)本机SQL执行相同的操作?
我尝试过以下操作,但它给了我一个例外...我不确定lt_table
需要什么数据类型来保存计数,而CL_SQL_RESULT_SET
类(由{返回} {1}})似乎需要一个本地表。
execute_query
谢谢!
答案 0 :(得分:2)
在一些神秘的恩人的帮助下,我想出了这个。我需要创建一个内部表,其中包含I
(整数)类型的单个列,然后从此内部表中提取计数。
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.
答案 1 :(得分:-1)
您也可以使用变量而不是内部表;
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').