我尝试执行我的存储过程,但是我遇到了麻烦。
存储过程的一个参数定义如下:
String maneuver[];
try {
JSONObject json = new JSONObject(responseContent);
JSONArray json_Routes = json.getJSONArray("routes");
for (int i = 0; i < json_Routes.length(); i++) {
JSONObject jsonRoute = json_Routes.getJSONObject(i);
JSONArray jsonLegs = jsonRoute.getJSONArray("legs");
for (int j = 0; j < jsonLegs.length(); j++) {
JSONObject jsonsteps = jsonLegs.getJSONObject(j);
JSONArray jsonmanr = jsonsteps.getJSONArray("steps");
JSONArray Json_man=new JSONArray(String.valueOf(jsonmanr));
maneuver=new String[Json_man.length()];
for (int k =1; k < Json_man.length(); k++) {
JSONObject jsonLeg = Json_man.getJSONObject(k);
maneuver[k]=jsonLeg.getString("maneuver");
Log.i("maneuver", maneuver[k]);
}
}
}
} catch (JSONException ew) {
ew.printStackTrace();
}
它是用户定义的表类型。
以下是上述类型的定义:
@MerchId [dbo].[intArray] READONLY,
以下是我尝试设置值并执行的方法:
CREATE TYPE [dbo].[intArray] AS TABLE ([num] [int] NULL)
但是我收到语法错误。
知道如何将值设置为exec @return_value = [dbo].[SPMerchData],
@MerchId = [1,2,3]
变量来执行存储过程?
答案 0 :(得分:5)
您应该声明一个变量并将其传递给您的过程:
DECLARE @t intArray;
INSERT INTO @t VALUES (1), (2), (3);
exec @return_value = [dbo].[SPMerchData],
@MerchId = @t