AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-7385

Juan Velez's questions

Martin Hope
Juan Velez
Asked: 2020-07-01 07:43:21 +0800 CST

Derivar períodos de datas de datas de início e término na tabela do SQL Server

  • 1

Estou usando o SQL Server 2016

Eu tenho uma tabela que contém 1 linha por mês que um paciente é atribuído a um determinado provedor.

Um paciente pode ser atribuído a vários provedores durante o ano.

Como posso derivar intervalos de datas (data de início e data de término) para representar a hora em que um paciente foi atribuído a cada provedor.

Minha tabela está assim:

+----------+---------------+------------+-----------+
| Provider | Patient       | StartDate  | EndDate  | 
+----------+---------------+------------+-----------+
| 1922157  | 12345         | 20191201  | 20191231 | 
| 1904176  | 12345         | 20191101  | 20191201 |
| 1904176  | 12345         | 20191001  | 20191101 |
| 1904176  | 12345         | 20190901  | 20191001 | 
| 1904176  | 12345         | 20190801  | 20190901 |
| 1904176  | 12345         | 20190701  | 20190801 |
| 1904176  | 12345         | 20190601  | 20190701 |
| 1904176  | 12345         | 20190501  | 20190601 |
| 1904176  | 12345         | 20190401  | 20190501 |
| 1904176  | 12345         | 20190301  | 20190401 |
| 1904176  | 12345         | 20190201  | 20190301 |
| 1922157  | 12345         | 20190101  | 20190201 |
| 1922157  | 56789         | 20190101  | 20190201 |
+----------+---------------+------------+-----------+

Neste caso, o paciente 12345 foi atribuído a 2 provedores diferentes. Um para 2 meses, janeiro e dezembro e outro para o resto do ano (10 meses) de fevereiro a novembro. O paciente 56789 foi atribuído apenas a 1 provedor (1922157) por 1 mês (em dezembro).

Estou tentando fazer com que minha saída se pareça com a tabela abaixo, mas estou tendo problemas, acho que porque o paciente é atribuído ao mesmo pcp durante 2 épocas diferentes do ano. Tentei usar a função lag, mas só obtenho os resultados corretos em alguns casos, mas não em todos, como neste caso em particular.

+----------+---------------+------------+-----------+
| Provider | Patient       | StartDate  | EndDate  | 
+----------+---------------+------------+-----------+
| 1922157  | 12345         | 20190101  | 20190201  | 
| 1904176  | 12345         | 20190201  | 20191201  | 
| 1922157  | 12345         | 20191201  | 20191231  | 
| 1922157  | 56789         | 20191201  | 20191231  |
+----------+---------------+------------+-----------+

Atualização: estava fazendo mais algumas pesquisas e me deparei com o seguinte post:

https://stackoverflow.com/questions/35900765/ms-sql-combine-date-rows-into-start-end-date

Acabei de encaixar minha tabela no código na resposta para a pergunta acima e testei alguns dos meus casos e parece que pode fazer o trabalho. Infelizmente, minha tabela base tem 140 mil linhas de datas que precisarão ser calculadas, então não tenho certeza de quanto tempo levará para ser executada. Está funcionando agora por 6 minutos, vou postar de volta com os resultados.

sql-server date-math
  • 1 respostas
  • 188 Views
Martin Hope
Juan Velez
Asked: 2020-06-18 16:23:22 +0800 CST

Contar dias no intervalo de datas, mas apenas para um ano específico dentro do intervalo de datas

  • 0

Eu tenho vários intervalos de data em uma tabela do SQL Server.

Estou tentando contar o número de dias no intervalo de datas para um determinado ano no intervalo de datas.

Para todos os meus exemplos, estou tentando contar os números de dias em 2019 que o período abrange.

Eu tenho o código abaixo que calcula o total de dias no intervalo de datas, mas existe uma maneira de obter uma contagem dos dias dentro desse intervalo de datas apenas para 2019?

O primeiro período de data abaixo cobre todo o ano de 2019, então espero retornar um número em torno de 365.

O segundo período abrange apenas 30 dias em 2019, então gostaria que a consulta retornasse 30.

SELECT DATEDIFF(DAY,CAST(CAST(20160609 AS VARCHAR(30)) AS DATE), cast (CAST(20191231 AS VARCHAR(30)) AS DATE)) AS [Days] 

SELECT DATEDIFF(DAY,CAST(CAST(20160609 AS VARCHAR(30)) AS DATE), cast (CAST(20190130 AS VARCHAR(30)) AS DATE)) AS [Days] 
sql-server date
  • 1 respostas
  • 415 Views
Martin Hope
Juan Velez
Asked: 2018-01-23 07:39:31 +0800 CST

SQL Server JOIN não funciona

  • 2

Não sei por que a consulta de junção abaixo não está retornando nenhum resultado.

SELECT * FROM table1 JOIN table2  ON table1.fieldid = table2.idfield 

As 2 consultas abaixo retornam resultados, então não sei por que a junção não pegará nenhuma linha quando posso ver claramente que ambas as tabelas têm valores de campo de junção em comum.

SELECT *  FROM table1 WHERE fieldid =  900399530  (returns rows)
SELECT *  FROM table2 WHERE idfield =  900399530  (returns rows)

Alguma ideia?

Abaixo estão os tipos de dados para as 2 colunas:

fieldid [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL

idfield [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL

sql-server join
  • 1 respostas
  • 8273 Views
Martin Hope
Juan Velez
Asked: 2017-07-11 04:46:25 +0800 CST

SQL Server Insert Into - Como identificar a coluna que está causando o erro de truncamento

  • 12

Eu tenho um procedimento armazenado que insere 650 campos em uma tabela. A inserção está falhando com um erro de truncamento.

É um simples

INSERT INTO
SELECT (a bunch of fields) 
FROM (a bunch of tables)

Abaixo está a mensagem de erro:

Msg 8152, Level 16, State 14, Procedure DSP_Procedure, Line 1075 String ou dados binários seriam truncados.

Existe uma maneira rápida de identificar qual campo está causando o erro de truncamento?

O fato de a instrução select a ser inserida na tabela ter 650 campos torna difícil identificar qual campo está causando o erro de truncamento.

Estou pensando que talvez possa comentar blocos de campos por vez para que o SP insira apenas 100 campos por vez e depois execute o SP 6 ou 7 vezes diferentes até que eu possa pelo menos restringir a um grupo de 100 campos que conterá o campo que está causando o erro de truncamento.

Alternativamente, estou pensando que talvez eu possa apenas SELECT INTOuma nova tabela e, em seguida, compare os comprimentos de dados na tabela versus os comprimentos de dados da tabela de destino que estou tentando inserir no meu SP para ver qual campo contém um comprimento de campo maior do que o esperado. ..

Estou usando o SQL Server 2014.

Alguma alternativa mais fácil?

sql-server t-sql
  • 3 respostas
  • 10890 Views
Martin Hope
Juan Velez
Asked: 2017-02-10 13:50:43 +0800 CST

Destravamento duplo?

  • 7

Estou precisando desarticular a tabela abaixo para que a saída fique como mostrada na imagem abaixo.

insira a descrição da imagem aqui

Isso exige que eu execute um UNPIVOT duas vezes no conjunto de dados ou posso realizar minha saída esperada usando UNPIVOT uma vez e especificando todas as colunas Mês e Valor disponíveis?

Meu script deve ser parecido com o seguinte para realizar o que eu preciso?

 Select ID, Name, Age, Gender,Month,Value
    FROM
    (Select ID, Name, Age, Gender,Month1,Month2,Month3,Month4,Value1,Value2,Value3,Value4
    FROM MyTable
    ) as cp
    UNPIVOT 
    (
      Month FOR Months IN (Month1, Month2, Month3,Month4),
      Value for Values IN (Value1,Value2,Value3,Value4)
    ) AS up;
sql-server unpivot
  • 1 respostas
  • 3663 Views
Martin Hope
Juan Velez
Asked: 2016-06-28 13:48:44 +0800 CST

Erro SSRS - Um escopo é necessário para todos os agregados no cabeçalho ou rodapé da página que fazem referência a campos

  • 1

Eu tinha a seguinte expressão de caixa de texto em meu relatório do SSRS e estava funcionando bem.

  = First(Fields!FirstName.Value) +" " + First(Fields!LastName.Value) + ", MD"

Quando movi a caixa de texto para a área do cabeçalho do relatório, comecei a receber a mensagem de erro "escopo necessário"

Fiz algumas pesquisas e vi que precisava especificar o conjunto de dados. Depois que incluí o conjunto de dados (PPR) abaixo, o erro desapareceu.

  = First(Fields!FirstName.Value,"PPR") +" " + First(Fields!LastName.Value, "PPR") + ", MD"

O SSRS agora está dando o mesmo erro, mas para outra caixa de texto/expressão (abaixo) que estava funcionando bem até que eu a movi para o cabeçalho.

="Interim Score:   " & CINT((sum(CINT(left(fields!Points.value,1))) / sum(CINT(right(fields!Points.value,1))))*100) & "%"

Eu tentei as 2 modificações a seguir para incluir o escopo (PPR) na expressão, mas ainda estou recebendo o mesmo erro. Isso é apenas um erro de sintaxe da minha parte ou estou tentando fazer algo que não pode ser feito no cabeçalho?

não funcionou

="Interim Score:   " & CINT((sum(CINT(left((fields!Points.value,"PPR"),1))) / sum(CINT(right((fields!Points.value,"PPR"),1))))*100) & "%"

não funcionou

="Interim Score:   " & CINT((sum(CINT(left(fields!Points.value,"PPR",1))) / sum(CINT(right(fields!Points.value,"PPR",1))))*100) & "%"

Abaixo está a mensagem de erro completa que estou recebendo:

A expressão de valor para a caixa de texto 'Textbox6' faz referência a um campo em uma expressão de agregação sem um escopo. Um escopo é necessário para todos os agregados no cabeçalho ou rodapé da página que fazem referência a campos.

Eu só tenho 1 conjunto de dados (PPR) no meu relatório.

Eu estava lendo na página abaixo, mas não consigo identificar o que estou fazendo de errado. Qualquer sugestão seria muito apreciada.

https://technet.microsoft.com/en-us/library/dd220421%28v=sql.110%29.aspx

ssrs regular-expression
  • 1 respostas
  • 5261 Views
Martin Hope
Juan Velez
Asked: 2016-06-19 12:07:15 +0800 CST

Substituição do SQL Server não retorna o resultado esperado

  • 2

O código abaixo não deveria retornar 0?

SELECT REPLACE(ISNULL('',0),'',0)

Isso também não retorna 0 ....

SELECT REPLACE('','',0)

Eu tenho um campo nvarchar em uma tabela que contém valores numéricos, mas às vezes está em branco (não nulo).

Eu tenho uma consulta que verifica se esse campo é < um número em outro campo, mas recebo

"Erro ao converter o tipo de dados nvarchar em numérico."

erros se o campo estiver em branco. Estou tentando converter os valores em branco ('') em zeros durante a execução da consulta para não receber o erro de conversão, mas acabei de perceber que

SELECT REPLACE('','',0)

não converterá o campo em branco em 0.

Eu tentei usar o código abaixo para tentar evitar o erro de conversão, mas não está avaliando para 0 quando o campo de limite está em branco como eu esperava:

SELECT CAST(REPLACE(ISNULL(Threshold,0),'',0) as decimal(4,2))

Como posso obter o código para avaliar como 0 quando o campo de limite está em branco.

Acho que poderia escrever uma instrução if ou case que pula o limite de valor em branco (''), mas estou pensando que deve haver uma maneira de fazer tudo embutido, algo como o que estou tentando fazer com o código acima .

sql-server
  • 1 respostas
  • 861 Views
Martin Hope
Juan Velez
Asked: 2016-06-03 11:33:06 +0800 CST

Consulta de parada/saída do SQL Server em caso de erro

  • 0

Eu tenho os 2 comandos abaixo (inserir e soltar) em uma consulta. Quando executo a consulta, recebo um erro dizendo:

String ou dados binários seriam truncados.

Quando vou verificar a tabela de origem descubro que a tabela não existe. Ele foi excluído pela instrução drop. Achei que a segunda instrução não seria executada porque a primeira (a inserção) falhou.

Como posso escrever o código abaixo para que falhe toda a consulta e não elimine a tabela, a menos que a primeira parte (a inserção) seja bem-sucedida?

Preciso usar Begin, End e Go?

INSERT INTO SomeTable
SELECT * FROM SomeOtherTable

DROP table SomeOtherTable
sql-server
  • 2 respostas
  • 1111 Views
Martin Hope
Juan Velez
Asked: 2016-05-05 10:47:15 +0800 CST

Campo de atualização na tabela do SQL Server dinamicamente

  • 0

Preciso fazer uma atualização 1 vez de uma tabela Sql Server.

A tabela tem um ID exclusivo, contém um campo de número de membro e um campo FileName que nos informa de qual arquivo os dados do membro vieram.

O que preciso fazer é atualizar o valor [Filename] para ser diferente para todos os registros pertencentes a um número de membro específico que estava presente no arquivo histórico mais de uma vez.

Portanto, na imagem abaixo, o membro número 123 possui 3 registros na tabela que possuem o valor FileName como histórico. Eu preciso que o valor de Filename seja exclusivo por registro de número de membro, então eu precisaria que os valores de Filename para este membro fossem History, History_2 e History_3, em vez de History para todos os 3 registros.

Tenho certeza de que isso é possível fazer com SQL e atualmente estou trabalhando nisso, mas queria saber se alguém encontrou uma necessidade de atualização de tabela semelhante e teve algum conselho ou código que posso modificar ligeiramente para obter os resultados desejados.

Exemplo de Atualização de Tabela

Este é o código que uso para identificar o número do membro que possui registros que precisam ser atualizados:

SELECT Member_Number, COUNT(*) CountNumber
                   FROM mytable
                   WHERE [FileName] = 'History' 
                   GROUP BY Member_Number
                   HAVING COUNT(*) > 1

Atualização de progresso:

Eu tenho o código abaixo até agora, mas estou tendo que especificar o número real do membro. Acho que preciso encontrar uma maneira de fazer o código abaixo percorrer todos os números dos membros. Existem cerca de 1.000 números de membros que precisam ser atualizados na tabela.

  SELECT *, t1.[FileName] + '_' + CAST(RN AS VARCHAR(50)) FROM 
  (
  SELECT (ROW_NUMBER() OVER (ORDER BY(SELECT 1))) RN ,* FROM mytable WHERE Member_Number = 'BAY391'
  ) AS t1
  WHERE RN > 1
sql-server update
  • 2 respostas
  • 81 Views
Martin Hope
Juan Velez
Asked: 2016-01-12 13:27:56 +0800 CST

Este é o comportamento normal do Contêiner de Loop Foreach do SSIS

  • 1

Eu tenho um Foreach Loop Container que percorre os arquivos em uma pasta. Achei que o Loop Container só olharia os arquivos 1 vez, mas aparentemente ele começará de volta no topo e pegará um arquivo que já havia visto novamente.

Eu tenho um script em meu contêiner de loop que processará o arquivo se ele atender a determinados critérios. Caso contrário, ele simplesmente ignorará o arquivo.

Os arquivos processados ​​são movidos para outra pasta. O problema que estou tendo é que, uma vez que ele passa por todos os arquivos, ele começa de volta no topo da lista de arquivos, então ele continuará indefinidamente em loop se houver um arquivo que foi ignorado e não movido para uma pasta diferente .

Eu sei que posso fazer isso de forma que, em vez de pular o arquivo, meu processo mova o arquivo para outra pasta para que o contêiner de loop foreach possa terminar o loop e o pacote possa ser concluído, mas pensei em verificar primeiro para ver se havia um maneira de apenas fazer com que o contêiner de loop percorra os arquivos uma vez, de modo que, se um arquivo já tiver sido identificado, ele não seja detectado novamente pelo contêiner de loop.

ssis
  • 1 respostas
  • 926 Views
Martin Hope
Juan Velez
Asked: 2015-11-17 06:52:26 +0800 CST

Encontrar programaticamente o conjunto mínimo de campos necessários para criar uma chave composta exclusiva

  • 3

Estou importando arquivos simples de diferentes fontes para tabelas no SQL Server. Estou criando uma chave primária composta usando uma combinação de campos das extrações que me fornecerão uma chave exclusiva para cada linha.

A maneira como faço agora é começar com 1 campo e continuar concatenando os campos até encontrar uma chave exclusiva para todos os registros. Isso pode consumir um pouco de tempo ou posso acabar concatenando mais colunas do que realmente precisava para obter a chave exclusiva.

Existe algum tipo de script SQL que eu possa executar em uma tabela que me forneça o número mínimo de campos (nomes) que eu precisaria concatenar para obter uma chave exclusiva? Portanto, se houver 1 campo na tabela que seja exclusivo para todos os registros, esse 1 nome de campo será retornado. Se eu precisasse concatenar [memberid], [claimid] e [date of service] para obter uma chave exclusiva, esses 3 nomes de campo seriam o resultado do script.

sql-server database-design
  • 4 respostas
  • 1891 Views
Martin Hope
Juan Velez
Asked: 2015-11-06 10:34:57 +0800 CST

SQL Server - DELETE da subconsulta/tabela derivada

  • 3

Existe uma maneira de transformar a SELECTdeclaração abaixo em um DELETE?

Gostaria de excluir os registros correspondentes retornados da [ETL].[Stage_Claims]tabela.

Como usei tabelas derivadas, não posso fazer referência à Stage_Claimstabela.

Para resumir, as 2 tabelas físicas usadas na consulta abaixo possuem estruturas idênticas. A única diferença é DUPS_Claimsum subconjunto de Stage_Claims.

DUPS_Claimscontém registros duplicados encontrados em arquivos Stage_Claims. Se um registro existir 3 vezes em Stage_Claims, teremos esse registro 3 vezes DUPS_Claimstambém.

Stage_Claimscontém todos os registros, incluindo os registros duplicados em DUPS_Claims.

Gostaria de remover os registros duplicados Stage_Claimsdeixando apenas 1 registro exclusivo para cada registro duplicado.

Stage_Claimstem pouco menos de 1 milhão de linhas, então não quero usar Row_Number / Partition em toda a tabela, pois leva mais de 2 minutos para ser executado.

A consulta abaixo é executada em cerca de 15 segundos e identifica com êxito apenas os registros duplicados (sem incluir o registro exclusivo original que queremos manter), mas não consegui descobrir como excluir os registros retornados do SC.

É possível ou devo apenas adotar uma abordagem diferente?

SELECT *
FROM (
    SELECT RN = ROW_NUMBER() OVER (
            PARTITION BY SC.ID ORDER BY SC.id
            )
        ,SC.*
    FROM [ETL].[Stage_Claims] SC
    WHERE ID IN (
            SELECT ID
            FROM (
                SELECT RN = ROW_NUMBER() OVER (
                        PARTITION BY ID ORDER BY id
                        )
                    ,ID
                FROM [ETL].[DUPS_Claims]
                ) AS t1
            WHERE RN > 1
            )
    ) AS t2
WHERE RN > 1
sql-server
  • 1 respostas
  • 7548 Views
Martin Hope
Juan Velez
Asked: 2015-10-21 11:12:28 +0800 CST

Por que usar um CTE é muito mais rápido do que usar uma tabela #Temp nesta consulta?

  • 2

Eu tenho 2 consultas diferentes para identificar dups (abaixo). A única diferença entre as 2 consultas é que uma usa um CTE e a outra usa uma tabela #Temp.

Alguém sabe porque o CTE é tão mais rápido que a tabela #Temp (0:20 segundos VS. 1:22)?

Prefiro usar o CTE mas preciso rodar 2 STATEMENTS usando o CTE (DELETE from CTE e depois INSERT INTO table FROM CTE) mas o SQL Server só permite escrever um STATEMENT no CTE.

Consulta 1:

WITH DUPS AS(
   Id,
   Column1,
   Column2,
   Column3,
   RN = ROW_NUMBER()OVER(PARTITION BY ID ORDER BY id)
   FROM mytable
)
  Select top 1 * FROM DUPS WHERE RN > 1 

Consulta 2:

 SELECT    
           Id,
           Column1,
           Column2,
           Column3,
           RN = ROW_NUMBER()OVER(PARTITION BY ID ORDER BY id)
       INTO #DUPS
       FROM mytable

       Select top 1 * FROM #DUPS WHERE RN > 1 
sql-server
  • 2 respostas
  • 7376 Views
Martin Hope
Juan Velez
Asked: 2015-10-17 10:16:18 +0800 CST

SSIS - Ferramenta/técnica de mapeamento de arquivo simples de largura fixa

  • 7

Eu estou querendo saber se existe uma ferramenta (ou uma técnica especial) que alguém usou para mapear arquivos simples de largura fixa em gerenciadores de conexão de arquivo simples SSIS?

Normalmente, eu apenas uso o Editor do Gerenciador de Conexões de Arquivo Simples (guia Avançado) e começo a adicionar as informações da coluna (nome, largura, tipo de dados etc.) para todas as colunas 1 por 1.

Isso funcionou bem para mim no passado, mas agora tenho que mapear um arquivo de largura fixa com cerca de 500 colunas...

Estou pensando (esperando) que deve haver uma ferramenta ou técnica que eu possa usar que me permita realizar o mapeamento de uma forma mais simplificada...

Usando o dicionário de dados que me foi fornecido para o arquivo, eu poderia criar facilmente um documento do Excel (ou texto), por exemplo, com algumas colunas que incluem as informações necessárias que o SSIS precisa (nome da coluna, delimitador, largura da coluna de entrada, largura da coluna de saída, tipo de dados) para mapear o arquivo .

Gostaria de saber se existe uma ferramenta ou componente SSIS que possa ler este arquivo e criar automaticamente os mapeamentos no Flat File Connection Manager para mim...

Se não existe essa ferramenta, alguém tem algum truque ou dica que possa me ajudar a mapear o arquivo da maneira mais eficiente?

Estou me perguntando se talvez eu possa modificar o arquivo xml do pacote SSIS de uma maneira que eu possa criar algum código que crie um script com as informações da coluna para todas as colunas no formato xml e, em seguida, eu possa copiá-lo e colá-lo manualmente no xml do pacote arquivo ... não tenho certeza se isso funcionaria ....

Obs: Após mapear o arquivo no SSIS, ele será carregado em uma tabela do SQL Server

Editor do Gerenciador de Conexões de Arquivo Simples

sql-server ssis
  • 1 respostas
  • 8623 Views
Martin Hope
Juan Velez
Asked: 2015-09-19 12:11:49 +0800 CST

Como posso resolver o erro SSIS Excel Connection Manager 0xC0209303?

  • 9

Eu criei um pacote SSIS que importa um arquivo do Excel para uma tabela do SQL Server.

O pacote SSIS é executado sem nenhum problema quando o executo localmente em minha máquina, mas quando o executo no servidor em que o pacote será agendado, recebo o erro abaixo (de um arquivo de texto estou gerando erros para usar o log do SSIS).

Depois de pesquisar, as únicas recomendações que encontrei foi definir a propriedade Run64BitRuntime como false, o que fiz, mas ainda sem sorte. Eu duvido que seja isso que está causando meu erro, porque o erro não está especificando nada sobre 64 bits (como foi o caso nos artigos que encontrei).

Eu também pensei que poderia ser que o servidor não tivesse os drivers do Excel apropriados, mas também não acho que seja o caso, porque geralmente a mensagem de erro diria algo sobre os drivers não serem registrados.

Atualmente não tenho acesso remoto ao servidor. Eu só posso enviar o pacote para uma pasta e, em seguida, ele é executado por um aplicativo, portanto, as únicas mensagens de erro que posso ver são as que estão no log de erros de texto que criei.

insira a descrição da imagem aqui

Código de erro DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. A chamada do método AcquireConnection para o gerenciador de conexões "Envision" falhou com o código de erro 0xC0209303. Pode haver mensagens de erro postadas antes disso com mais informações sobre por que a chamada do método AcquireConnection falhou.

"Envision" é o nome do meu gerenciador de conexões do Excel.

Eu preencho o caminho do arquivo do Excel e a string de conexão usando expressões.

A expressão da string de conexão se parece com isso:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ @[User::SourceFilePath] +";Propriedades Estendidas=\"EXCEL 12.0 XML;HDR=YES\";"

O SSIS Pacakge é executado por um nome de usuário/conta do Windows. Eu acho que pode ser uma conta de serviços da web. (BDS_sprtIIS)

Alguém tem alguma solução ou sugestão de como resolver esse problema do pacote trabalhando apenas na minha máquina local, mas não no servidor real em que o pacote será implantado?

Encontrei a resposta abaixo em outro fórum, poderia ser o que está causando meus problemas? Eles estão basicamente dizendo que o gerenciador de conexões do Excel tenta acessar a pasta temporária dos usuários por algum motivo e, se não tiver acesso a essa pasta, falhará:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/da77919c-0161-4eb5-bf89-7107d839435a/the-acquireconnection-method-call-to-the-connection-manager-excel-connection- manager-failed-with?forum=sqlintegrationservices

Notei também que o driver Microsoft.JET.OLEDB.4.0 tentará ler o diretório temporário abaixo do perfil do usuário logado.

.

... Executamos nossos SQL Agents usando uma conta de domínio de nível inferior e executamos nossos pacotes SSIS usando uma Conta Proxy. Você está correto como Procmon confirmou para mim também. Dei os direitos da Conta Proxy ao diretório temporário do perfil (C:\Documents and Settings\SQLAgentDomainAccount\Local Settings\Temp) e funcionou!

Não estou usando contas SQL Server Jobs ou Proxy. O pacote é simplesmente executado por uma conta do Windows provavelmente através de um script de linha de comando.

A conta do Windows tem acesso ao arquivo, mas não tenho certeza se ela tem acesso à pasta "TEMP" (que nunca faço referência no pacote, então não sei por que precisaria ter acesso a essa pasta) ...

sql-server ssis
  • 2 respostas
  • 59609 Views
Martin Hope
Juan Velez
Asked: 2015-09-18 05:34:46 +0800 CST

SSIS: Quais serviços reiniciar para que as permissões de pasta sejam propagadas para o nome de usuário que executa o pacakge?

  • 2

Criei um pacote SSIS que precisa de acesso a uma pasta em uma unidade compartilhada.

O pacote é executado com êxito em minha máquina local, mas recebo um erro de acesso negado quando o executo em um servidor diferente usando um nome de usuário diferente.

Criei um ticket para o TI dar permissões de acesso ao nome do usuário que está executando o pacote, mas o pacote ainda estava falhando com o mesmo erro de acesso ao caminho negado.

O TI me disse que precisaria reiniciar os serviços que o nome de usuário (do Windows) estava usando para que as alterações se propagassem.

Minha dúvida é: quais serviços eu precisaria reiniciar para que o nome de usuário tenha os novos direitos de acesso propagados para ele para que meu pacote seja executado (com acesso à pasta)?

Preciso reiniciar o servidor no qual o pacote reside? O servidor que contém a pasta compartilhada precisa ser reiniciado? Algum serviço do SQL Server precisa ser reiniciado? Qual é a maneira mais fácil de propagar as permissões para o nome de usuário?

sql-server ssis
  • 1 respostas
  • 204 Views
Martin Hope
Juan Velez
Asked: 2015-09-09 11:46:58 +0800 CST

Fazer script de objetos que estão em um esquema específico

  • 1

Estou executando o SQL Server 2014 e usando o SSMS.

Existe uma maneira de fazer o script de todos os objetos em um esquema específico (procedimentos armazenados, exibições, tabelas etc.) para que eu possa gerar os objetos em outro banco de dados?

Existe uma maneira de reduzi-lo ao script apenas de todas as tabelas em um determinado esquema?

sql-server sql-server-2014
  • 2 respostas
  • 2275 Views
Martin Hope
Juan Velez
Asked: 2015-08-21 11:08:58 +0800 CST

Tarefa do sistema de arquivos SSIS (operação de cópia de arquivo) Funcionalidade OverWriteDestination

  • 0

Não consegui encontrar nenhuma documentação sobre a funcionalidade da propriedade OverWriteDestination do componente Tarefa do sistema de arquivos SSIS para uma operação de cópia de arquivo.

Entendo para que é usado, mas como ele realmente faz com que o componente se comporte quando o OverWriteDestination é definido como falso?

Se definido como False, o componente simplesmente ignorará o arquivo e não tentará copiá-lo ou o copiará com um nome diferente, talvez um número anexado ao final do nome do arquivo que está sendo copiado (por exemplo, filename(1).text )?

ssis
  • 2 respostas
  • 5725 Views
Martin Hope
Juan Velez
Asked: 2015-08-11 12:05:10 +0800 CST

Parâmetros suspensos do Relatório SSRS. Use SP ou consulta SQL incorporada para fonte de dados?

  • 2

Quando crio relatórios do SSRS, crio procedimentos armazenados para trazer dados para o meu relatório. Quando crio os parâmetros do relatório, apenas incorporo o código SQL diretamente no parâmetro/relatório SSRS.

Devo também criar procedimentos armazenados para minhas fontes de dados de parâmetro?

Parece um pouco exagerado criar um SP para cada parâmetro/fonte de dados em um relatório, mas acho que se você quiser modificar o código SQL que o parâmetro usa para carregar os valores suspensos sem ter que abrir o relatório real , então eu provavelmente gostaria de ir com SPs para tudo ....

ssrs visual-studio
  • 1 respostas
  • 371 Views
Martin Hope
Juan Velez
Asked: 2015-08-01 12:46:32 +0800 CST

Registro de atualização (substituir) do SSIS em vez de anexar com base na chave primária

  • 2

Eu criei um SSIS Pacakge que importa um arquivo de declarações de extração mensal. Eu tenho uma tarefa simples de fluxo de dados, arquivo simples para destino OLEDB com um componente de coluna derivado usado para gerar uma chave primária (com base em uma combinação de 3 colunas no arquivo de extração).

O que eu gostaria de fazer, se possível, é que o pacote SSIS importe apenas novos registros com base na chave primária para que, se houver um arquivo importado que contenha uma chave primária (gerada) que já exista na tabela de destino, então gostaria que o pacote excluísse o registro existente na tabela e depois adicionasse o novo registro do arquivo atual que está sendo importado.

Eu sei que poderia fazer isso tendo uma tabela de teste onde carrego o arquivo e, em seguida, usando algumas consultas sql (sp) para excluir e adicionar registros à tabela apropriadamente, mas estou tentando realizar a importação sem precisar criar uma tabela de teste porque a tabela que estou preenchendo no momento, já é uma tabela de preparação...

O que estou tentando realizar é possível usando o SSIS e apenas 1 tabela de destino ou precisarei criar uma tabela de preparação adicional?

sql-server ssis
  • 1 respostas
  • 2805 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve