Welsh Corgi (9/2/2014)
Thanks Lynn, you are awesome.
declare @cnt int,
@OracleRowCount int,
@OracleSchemaName nvarchar(max),
@OracleTableName nvarchar(max),
@SQLCmd nvarchar(max),
@ParmDefinition NVARCHAR(500);
set @OracleSchemaName = N'OracleSchema';
set @OracleTableName = N'OracleTable';
select @SQLCmd = N'
SELECT
@cnt = OracleTableCount
FROM
OPENQUERY(LS_RDB_DWH_POLICY52, ''
SELECT
COUNT(*) OracleTableCount
FROM
' + @OracleSchemaName + N'.' + @OracleTableName +
''');';
print @SQLCmd;
EXEC sp_executesql @SQLCmd, @ParmDefinition, @cnt = @OracleRowCount OUTPUT;
I added @ParmDefinition NVARCHAR(500);. I get an error that I must DECLARE @cnt. I try and add @cnt and I get a message that it is already defined.:crazy:
Must declare the scalar variable "@cnt".
Sorry, but I don't see where you populated @ParmDefinition. Try this:
declare @cnt int,
@OracleRowCount int,
@OracleSchemaName nvarchar(max),
@OracleTableName nvarchar(max),
@SQLCmd nvarchar(max),
@ParmDefinition NVARCHAR(500);
set @ParmDefinition = N'@cnt int output';
set @OracleSchemaName = N'OracleSchema';
set @OracleTableName = N'OracleTable';
select @SQLCmd = N'
SELECT
@cnt = OracleTableCount
FROM
OPENQUERY(LS_RDB_DWH_POLICY52, ''
SELECT
COUNT(*) OracleTableCount
FROM
' + @OracleSchemaName + N'.' + @OracleTableName +
''');';
print @SQLCmd;
print @ParmDefinition;
EXEC sp_executesql @SQLCmd, @ParmDefinition, @cnt = @OracleRowCount OUTPUT;