Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

allenprado

Erro em Rodar Procedure SQL Server por PHP

Recommended Posts

Blz Galera

 

Precisando de uma ajuda urgente...

 

Estou tentando fazer minha pagina de PHP rodar uma procedure mas das duas formas que estou tentando a pagina retorna erro, a procedure roda normalmente pelo sql server.

 

Ja verifiquei schema, parâmetros estão sendo enviados...

 

O select da Procedure roda em Link server para uma base oracle e alimenta uma base SQL server, porem necessita de dois parametros uma data e um ciclo.

 

Segue scripts

 

// =================inicio do script====================

<?php
session_start();
session_cache_expire(3000);
set_time_limit(3000);
ini_set(max_execution_time, '3600');
ini_set(max_input_time, '3600');
error_reporting( E_ALL);
include "conexaoSqlServer.php";
include "classes.php";
$ref_fat = $_POST['ref_fat'];
$ciclo = $_POST['ciclo'];
$ref_fatx = FormataDataInversoSemHifem($ref_fat);
//================Primeira Forma =======================
/* Preparar o recurso instrução
$Stmt = mssql_init("SP_ARQUIVO_CICLO_ATUAL",$conexao) or die("Erro Inicializacao Procesure");
/* Agora vincular os parâmetros para ela
mssql_bind($Stmt, "@ref_fat", $ref_fatx, SQLVARCHAR , FALSE) or die("Erro Parametro 1");
mssql_bind($Stmt, "@ciclo", $ciclo, SQLVARCHAR, FALSE) or die("Erro Parametro 2");
/* Agora executar o procedimento
mssql_query("SET ANSI_NULLS ON");
mssql_query("SET ANSI_WARNINGS ON");
mssql_execute($Stmt) or die("Erro de mssql_execute");
mssql_free_result($Stmt);
mssql_close($conexao);
echo mssql_get_last_message(); */
//================Segunda Forma =======================
$query = "exec SP_ARQUIVO_CICLO_ATUAL '$ref_fatx', '$ciclo'";
mssql_query("SET ANSI_NULLS ON");
mssql_query("SET ANSI_WARNINGS ON");
mssql_query($query,$conexao) or die("Erro Não Rodou");
//==============PROCEDURE SCRIPT====================
USE [Portal]
GO
/****** Object: StoredProcedure [dbo].[sP_ARQUIVO_CICLO_ATUAL] Script Date: 14/09/2015 18:25:15 ******/
Set ANSI_NULLS ON
Set ANSI_WARNINGS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sP_ARQUIVO_CICLO_ATUAL](@ref_fat varchar(8), @ciclo varchar(10))
AS
declare @aux varchar(max)
--@ref_fat varchar(8) = '20150310', @ciclo varchar(2) = '10'
TRUNCATE TABLE tbl_arquivo_faturado
set @aux = 'SELECT * FROM OPENQUERY (DTBN, ''SELECT /*+ PARALLEL (CCI 8)*/ CCI.ACCT_NBR,CCI.SBSCRP_ID,S.ACCESS_NBR,S.SBSCRP_SVC_EXPR_DT,null as ACCESS_NBR_EFF_DT,null as ACCESS_NBR_ASGM_EXPR_DT,null REASON_CD,
CCI.CAPTN_CD,CCI.SVC_NAME,CCI.FNCL_ACCT_NBR,CCI.GEO_STATE_CD"UF_SBS",CCI.SVC_AGRMNT_SEQ_NBR,CCI.SVC_PRICE_SEQ_NBR,CCI.LAST_BILL_DT,CCI.CYCLE_CD,CCI.CHARGE_CR_AMT,
CCI.SVC_AGRMNT_EFF_DT,CCI.CHARGE_ITEM_START_DT,CCI.CHARGE_ITEM_END_DT,CCI.CHARGE_TYPE_CD
FROM CHARGE_CR_ITEM@PRODLK CCI, SBSCRP S
WHERE CCI.SBSCRP_ID = S.SBSCRP_ID
AND CCI.LAST_BILL_DT = ' + @ref_fat + '
AND CCI.CYCLE_CD = ' + @ciclo + '
AND CCI.FNCL_ACCT_NBR IN (''''SEGUROSACE000'''',''''SEGUROZURICH000'''',''''SEGMAPFRE.000'''')'')'
INSERT INTO tbl_arquivo_faturado
exec (@aux)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.