none
Ajuda com a aspas simples RRS feed

  • Pergunta

  • Declare @cmdSQL as Varchar(Max)
    	Set @cmdSQL = 'Select Top 1 * From OPENQUERY(ICS,''SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''ACTIVE'',''OK'')'')'
    Select @cmdSQL




    RESULTADO = Select Top 1 * From OPENQUERY(ICS,'SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN ('ACTIVE', 'OK')')

     

     

    Amigos estou tentando colocar mais uma aspa simples neste trecho de código "STATUS IN ('ACTIVE', 'OK')" e não estou conseguindo.

    Poderiam me ajudar?


    Daniel
    quarta-feira, 20 de maio de 2009 14:34

Respostas

  • Ola Daniel,

    falta mais uma sequencia de aspas '
    observer seu codigo alterado

    Declare @cmdSQL as Varchar(Max)
    	Set @cmdSQL = 'Select Top 1 * From OPENQUERY(ICS,''''SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''''ACTIVE'''',''''OK'''')'''')'
    
    --Exec(@cmdSQL)
    
    Declare @bcp as Varchar(Max)
    	Set @bcp = 'bcp "'+@cmdSQL+'" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\Acao_ATUAL.txt" -S ICS -T -c -t"|"'
    
    --Select @bcp
    
    
    Declare @shell as Varchar(17)
    	Set @shell = 'exec xp_cmdshell '
    
    Declare @cmd as Varchar(Max)
    	Set @cmd = @shell + '''' + @bcp + ''''
    
    --Select @cmd
    
    Exec(@cmd)
    



    att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    • Marcado como Resposta dralves quinta-feira, 21 de maio de 2009 00:35
    quarta-feira, 20 de maio de 2009 16:59

Todas as Respostas

  • Ola Daniel,

    tenta assim:

    Declare

     

    @cmdSQL as Varchar(Max)

    Set

     

    @cmdSQL = 'Select Top 1 * From OPENQUERY(ICS,''SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''''ACTIVE'''',''''OK'''')'')'

    Select

     

    @cmdSQL



    att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    quarta-feira, 20 de maio de 2009 14:46
  • Declare @cmdSQL as Varchar(Max)
    	Set @cmdSQL = 'Select Top 1 * From OPENQUERY(ICS,''SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''''ACTIVE'''',''''OK'''')'')'
    
    --Exec(@cmdSQL)
    
    Declare @bcp as Varchar(Max)
    	Set @bcp = 'bcp "'+@cmdSQL+'" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\Acao_ATUAL.txt" -S ICS -T -c -t"|"'
    
    --Select @bcp
    
    
    Declare @shell as Varchar(17)
    	Set @shell = 'exec xp_cmdshell '
    
    Declare @cmd as Varchar(Max)
    	Set @cmd = @shell + '''' + @bcp + ''''
    
    --Select @cmd
    
    Exec(@cmd)
    Blz Funcionou Marcelo, mais quando jogo no código como um todo está dando o seguinte erro.

    Msg 102, Level 15, State 1, Line 1

    Incorrect syntax near 'ACTIVE'.


    Daniel
    quarta-feira, 20 de maio de 2009 15:09
  • Ola Daniel,

    falta mais uma sequencia de aspas '
    observer seu codigo alterado

    Declare @cmdSQL as Varchar(Max)
    	Set @cmdSQL = 'Select Top 1 * From OPENQUERY(ICS,''''SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''''ACTIVE'''',''''OK'''')'''')'
    
    --Exec(@cmdSQL)
    
    Declare @bcp as Varchar(Max)
    	Set @bcp = 'bcp "'+@cmdSQL+'" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\Acao_ATUAL.txt" -S ICS -T -c -t"|"'
    
    --Select @bcp
    
    
    Declare @shell as Varchar(17)
    	Set @shell = 'exec xp_cmdshell '
    
    Declare @cmd as Varchar(Max)
    	Set @cmd = @shell + '''' + @bcp + ''''
    
    --Select @cmd
    
    Exec(@cmd)
    



    att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    • Marcado como Resposta dralves quinta-feira, 21 de maio de 2009 00:35
    quarta-feira, 20 de maio de 2009 16:59
  • Marcelo,

    Se utilizarmos o SET_Quoted_Identifier, poderiamos contornar este pequeno problema.


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quarta-feira, 20 de maio de 2009 18:30
  • Junior.

    Nooosa.... bem lembrado.... :)

    OBS. o SETQuoted_Identifier causa recomplilações.


    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    quarta-feira, 20 de maio de 2009 18:47
  • Marcelo,

    Realmente ele força a recompilação, mas pode ajudar neste tratamento de aspas simples ou duplas.


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quarta-feira, 20 de maio de 2009 19:49
  • Olá pessoal,

    geralmente eu uso char(39) ao invés de ''''. Só para deixar o código mais legível.


    declare @a varchar(20) = 'demetrio' --Ao invés de
    select '''' + @a + '''' --Uso
    select CHAR(39) + @a + CHAR(39)
    Abraços

    Demétrio Silva
    quarta-feira, 20 de maio de 2009 20:27
  • Demétrio,

    Bem lembrado!!!!
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quinta-feira, 21 de maio de 2009 13:35