• 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;