Erro em Rodar Procedure SQL Server por PHP
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, @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)
Discussão (0)
Carregando comentários...