SYS_REFCUROR 유형의 OUT 매개 변수가있는 저장 프로 시저가 있습니다. 프로 시저를 실행하기 전에 C#에서 해당 OUT 매개 변수를 제외한 모든 매개 변수를 추가합니다. 그러나 프로 시저를 실행할 때 "잘못된 숫자 또는 인수 유형"오류가 발생합니다. 내 질문은 그 매개 변수에 어떤 값을 할당하지 않을 경우 왜 내 매개 변수 컬렉션에 추가해야합니까?C# - 매개 변수 컬렉션에 매개 변수를 추가해야합니까?
답변
저장 프로 시저 실행 후 sql의 out 매개 변수 값이 코드에서 제공 한 out 매개 변수에 저장되므로 추후 실행시 나중에 사용할 수 있으므로 매개 변수를 추가해야합니다.
매개 변수를 전달하지 않으려면 출력 매개 변수에 기본값을 할당하면 문제가 해결됩니다. 예를 들어
:
CREATE PROCEDURE MyTest
@Data1 int
,@Data3 int = null output
위와 같이 할 경우, 다음 코드로 출력 매개 변수를 전달 할 필요가 없습니다, 그리고 당신이 점점 오류를 숨 깁니다.
Oracle의 OUT 및 IN OUT 매개 변수에 기본값을 추가 할 수 없습니다. SQL Server에 대해 잘 모릅니다. –
@MikeJM - SQL 서버를 사용하면 Oracle을 할 수 있지만 oracle은 생각이 없습니다. 당신이 코드를 추가 할 필요가없는 것보다 코드가 없습니다. –
잠시 기다려주십시오. 프로 시저에서 OUT 매개 변수에 값을 지정하지 않으면 어떻게됩니까? OUT 매개 변수가 SYS_REFCURSOR이므로이 경우 일 수 있습니다. 내 V_TYPE 매개 변수가 0이면 일부 SELECT 문에 대해서만 커서를 엽니 다. 그렇지 않으면 V_TYPE의 값에 따라 Insert, Update 또는 Delete를 수행하므로 해당 OUT 매개 변수에 값을 할당하지 않습니다. –
- 1. 매개 변수 내가 매개 변수를 얻고있다
- 2. C# System.Diagnostics.Process.Start() 매개 변수
- 3. 실행 매개 변수 C++
- 4. Qt : 플러그인 매개 변수 용 C++ 동적 매개 변수 GUI
- 5. C# 메서드와 매개 변수
- 6. 매개 변수, C#을
- 7. C#의 매개 변수
- 8. C# 템플릿 매개 변수
- 9. C++ 생성자 매개 변수
- 10. C++ - 매개 변수 질문
- 11. C++ 위치 매개 변수
- 12. 메서드 매개 변수 C#
- 13. C# 름명이없는 매개 변수
- 14. 컬렉션에 미리 선택된 값으로 폼에 매개 변수를 전달합니다.
- 15. 다른 매개 변수를 기반으로 매개 변수를 채우십시오.
- 16. 윈도우 C++ 스레드 매개 변수
- 17. C++ sqlite3 바인드 매개 변수
- 18. 매개 변수
- 19. C# 메서드 제네릭 매개 변수 매개 변수 버그?
- 20. 스레드 매개 변수 전달 c
- 21. FSMountServerVolumeSync 매개 변수 목표 C
- 22. 매개 변수
- 23. 생성자 매개 변수 대 메서드 매개 변수?
- 24. 매개 변수
- 25. C# : 콜백에 매개 변수 전달
- 26. C++, 매개 변수 전달 구문
- 27. C++ 템플릿 매개 변수 포인터를 템플릿 매개 변수로 사용하여 매개 변수를 지정하지 않고
- 28. 선택 매개 변수 추가 colletion (asp.net C#)
- 29. 매개 변수
- 30. 매개 변수
답변 확인 ..... –