Excel ADO를 통해 SQL Server에서 저장 프로 시저를 실행하면 예기치 않은 동작이 발생합니다. 저장 프로 시저에는 문자열 매개 변수가 있습니다. sp의 매개 변수가 짧은 경우 - 최대 4 milion 문자까지 - 모든 것이 정상적으로 작동합니다.Excel ADO 연결을 통해 매개 변수가있는 저장 프로 시저를 실행하기위한 제한
문자열 매개 변수가 e.i 인 경우 문제가 발생합니다. 9 백만 자입니다. 내가 SP의 시작 부분에이 코드에 의해 매개 변수를 캡처로 확실히 ADO가 SQL 서버에 관통 할 수 없다고 판단했습니다 :
create procedure MyStoredProcedure(@String nvarchar(max))
as
if OBJECT_ID('dbo.temp', 'U') is not null drop table dbo.temp;
select [String][email protected] into dbo.temp
그러나, 매개 변수가 더 엑셀 ADO를 통해 호출되는 SP에서 처리 할 수 없습니다. 상세한 sp는 중요하지 않을 수 있지만, 대답은 here에서 Stackoverflow에 제시된 경우에 대비됩니다.
declare @String nvarchar(max)
set @String=(select top 1 [String] from dbo.temp);
exec dbo.MyStoredProcedure @String
및 쿼리 매개 변수의 크기에 대한 제한없이 제대로 실행 : 확실히, SP 자체는이 같은 SSMS에서 호출 할 수 있기 때문에 괜찮습니다.
Excel ADO와 같은 매개 변수 길이 제한, 쿼리 제한, 제한 시간을 통해 저장 프로 시저를 실행하는 데 제한이 있습니까?
다른 기술을 사용하면 더 도움이 될 수 있지만 실제로 조사하려고 할 때/실제로하려는 작업을 지정하는 다른 질문을하십시오. 많은 ETL 도구가 있으며 Excel로 열어야하는지 또는 예정된로드를 사용할 수 있는지에 따라 달라집니다. 다른 대답이 많이 있습니다. 9 백만 문자는 SQL 서버에 전달할 수있는 크기가 매우 큰 매개 변수입니다. 또한 귀하의 다른 질문은 문자열 분할에 관한 것이고 이것은 STRING_SPILT() 함수가있는 SQL 2016 태그입니다. https://docs.microsoft.com/en-us/sql/t-sql/functions/string-split-transact- SQL – Matt