Просто ради аргументов, не должно быть важно, чтобы ваша хранимая процедура выполнялась на AS400. С точки зрения вашего веб-сервиса ASP.NET он использует обычную базу данных DB2. Кстати, как вы подключаетесь от Web-сервиса к базе данных, ADO.NET, ODBC или чему-то еще.
Вы пытались вызвать хранимую процедуру из командной оболочки SQL AS400 (STRSQL)? Вы пытались вызвать хранимую процедуру из сценария SQL Client Navigator? Особенно, если последний работает, ваш SP технически правильный. Обратите внимание, что вы можете получить определение SP в CA Navigator. Изучите параметры IN и OUT очень хорошо, потому что DB2 не очень-то прощает тип этих параметров.
Обратите внимание, что ваша внешняя программа на as400 (ILE или не ILE?) Должна поддерживать тип параметров, которые вы определили для своей хранимой процедуры. Возможно, ваши параметры IN верны, но ваш параметр OUT неверен. Следовательно, ваша программа может потерпеть неудачу, если она хочет вернуть значение. Кроме того, вы можете определить другой набор параметров (например, SQL вместо JAVA). Я могу представить, что определение неправильного набора может дать странные эффекты.
Пока что, проверьте ваш SP с CA Navigator (доступно с каждым AS400). Если это работает, ваш SP работает. Тогда вы можете сузить свою проблему до вашего веб-сервиса.
Кроме того, в DB2 вы можете определить свои параметры как INOUT. Это тоже будет хороший эксперимент.