none
Erro ao executar procedure RRS feed

  • Pergunta

  • Ao executar uma instalação, esta ocorrendo o seguinte erro:

    12:15:35  ERROR               DATABASE            Could not apply required updates in the Snow Inventory database. Error message: Invalid column name 'DatabaseName'.

    SQL COMMAND: 
    CREATE PROCEDURE [dbo].[AddOracleDatabase]
    (
    @DatabaseName nvarchar(100),
    @ClientId int,
    @ProductName nvarchar(100) = NULL,
    @ProductVersion nvarchar(20) = NULL,
    @FailOverClient nvarchar(50) = NULL,
    @FailOverServer nvarchar(50) = NULL,
    @ScanDate datetime,
    @ProcessorsAssigned int = NULL,
    @CpuSocketCount int = NULL,
    @CpuCoreCount int = NULL,
    @CpuHighWater int = NULL,
    @CpuCoreHighWater int = NULL,
    @ManagedByOEM bit = NULL,
    @VaultInstalled bit = NULL,
    @VaultUsed bit = NULL,
    @MaxMemoryUsed bigint = NULL
    )
    WITH ENCRYPTION
    AS
    BEGIN
    SET NOCOUNT ON
    SET DATEFORMAT ymd

    IF EXISTS( SELECT 1
    FROM OracleDatabase
    WHERE DatabaseName = @DatabaseName
     AND ClientId = @ClientId )
     BEGIN
    UPDATE OracleDatabase
       SET [Removed] = NULL,
    [ProductName] = @ProductName,
    [ProductVersion] = @ProductVersion,
    [FailOverClient] = @FailOverClient,
    [FailOverServer] = @FailOverServer,
    [ScanDate] = @ScanDate,
    [ProcessorsAssigned] = @ProcessorsAssigned,
    [CpuSocketCount] = @CpuSocketCount,
    [CpuCoreCount] = @CpuCoreCount,
    [CpuHighWater] = @CpuHighWater,
    [CpuCoreHighWater] = @CpuCoreHighWater,
    [ManagedByOEM] = @ManagedByOEM,
    [VaultInstalled] = @VaultInstalled,
    [VaultUsed] = @VaultUsed,
    [MaxMemoryUsed] = @MaxMemoryUsed
     WHERE [DatabaseName] = @DatabaseName
       AND ClientId = @ClientId

    -- Reset options
    UPDATE OracleDatabaseOptions
       SET Installed = 0
     WHERE [DatabaseName] = @DatabaseName
       AND ClientId = @ClientId

    -- Reset management packs
    UPDATE OracleDatabaseMgmtPacks
       SET Installed = 0
     WHERE [DatabaseName] = @DatabaseName
       AND ClientId = @ClientId

    -- Reset users
    UPDATE OracleDatabaseUsers
       SET Removed = GETDATE()
     WHERE [DatabaseName] = @DatabaseName
       AND ClientId = @ClientId
     END
    ELSE
     BEGIN
    INSERT INTO OracleDatabase
     ( [DatabaseName],
    [ClientId],
       [Removed],
    [ProductName],
    [ProductVersion],
    [FailOverClient],
    [FailOverServer],
    [ScanDate],
    [ProcessorsAssigned],
    [CpuSocketCount],
    [CpuCoreCount],
    [CpuHighWater],
    [CpuCoreHighWater],
    [ManagedByOEM],
    [VaultInstalled],
    [VaultUsed],
    [MaxMemoryUsed]) 
              VALUES
     ( @DatabaseName,
    @ClientId,
    NULL,
    @ProductName,
    @ProductVersion,
    @FailOverClient,
    @FailOverServer,
    @ScanDate,
    @ProcessorsAssigned,
    @CpuSocketCount,
    @CpuCoreCount,
    @CpuHighWater,
    @CpuCoreHighWater,
    @ManagedByOEM,
    @VaultInstalled,
    @VaultUsed,
    @MaxMemoryUsed ) 
    END

    RETURN 0 -- success
    END

    Tem algum parâmetro no SQL 2012 que possa estar causando isso?

    A instalação está em um Windows 2012 x64

    O SGDB é Microsoft SQL Server 2012 SP1


    terça-feira, 11 de fevereiro de 2014 17:33

Respostas

  • Marcio,

    O caminho deve ser este indicado pelo Alexandre, este campo "DatabaseName" não existe em uma das tabelas de sua procedure.

    Reveja se este campo esta nas tabelas: OracleDatabase, OracleDatabaseOptions, OracleDatabaseMgmtPacks ou OracleDatabaseUsers.

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    terça-feira, 11 de fevereiro de 2014 18:37
    Moderador

Todas as Respostas

  • Marcio, de uma olhada na sua tabela OracleDatabase veja se realmente tem o campo 'DatabaseName'

    Alexandre Matayosi Conde Mauricio.

    terça-feira, 11 de fevereiro de 2014 17:48
  • concordo com o alexandre a unica explicaçao que me ocorre é o campo nao existir!

    confirma e diz alguma coisa

    terça-feira, 11 de fevereiro de 2014 18:29
  • Marcio,

    O caminho deve ser este indicado pelo Alexandre, este campo "DatabaseName" não existe em uma das tabelas de sua procedure.

    Reveja se este campo esta nas tabelas: OracleDatabase, OracleDatabaseOptions, OracleDatabaseMgmtPacks ou OracleDatabaseUsers.

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    terça-feira, 11 de fevereiro de 2014 18:37
    Moderador
  • Na tabela OracleDatabase existe o campo, nas demais não.
    quarta-feira, 12 de fevereiro de 2014 10:10
  • Na tabela OracleDatabase existe o campo, nas demais não.

    Marcio,

    Então aí está o erro. Você precisa retirar o campo DatabaseName dos demais UPDATEs e, caso necessário, substituir por outro na sua cláusula WHERE.

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quarta-feira, 12 de fevereiro de 2014 10:13
    Moderador