
我们正在把一段数据库逻辑接入 C# 服务。业务要求很简单,传入一个字符串,由 SAP HANA 存储过程返回一条说明文字,同时执行一条查询。代码写到CALL时,问题开始出现,查询结果该从哪里取,OUT参数什么时候有值,两个?又怎样对应过程参数?这些细节如果混在一起处理,很容易出现连接成功、过程也执行了,C# 却读不到预期结果的情况。下面这段过程足以把问题讲透。它有一个输入参数strin,一个输出参数SorP。过程体中的SELECT会产生结果集,而赋值语句会设置输出参数。两者来自同一次调用,却要通过不同的对象读取。CREATEPROCEDURETEST_PRO1(INstrin NVARCHAR(100),OUTSo