+ -
当前位置:首页 → 问答吧 → 急急急急急!php 怎么调用oracel自定义函数???

急急急急急!php 怎么调用oracel自定义函数???

时间:2011-10-10

来源:互联网

我的写法如下

PHP code
  $strSql= "   SELECT apps.bg_invalid_pr(215,'IT201115',1) as BUYER_NAME FROM dual ";
  $conn =@odbc_connect('dsnOracle','bgdevlp','bg1devlp',SQL_CUR_USE_ODBC) or die ("连不上数据源");
  $result =odbc_do($conn,$strSql)or die("执行不到声明");//此处报错....
  while(odbc_fetch_row($result)){
     $BUYER_NAME =odbc_result($result,2);  
     echo " MM NN PP ";
     echo $BUYER_NAME;
  }


 报错内容为 :"ORA-00904"

 请问该怎么调用??
 

作者: guolu321   发布时间: 2011-10-10

ORA-00904 无效的列名

这与 php 毫无关系!

作者: xuzuning   发布时间: 2011-10-10

但是我单独 把 SQL 语句 PL / SQL 中能 正确执行...

作者: guolu321   发布时间: 2011-10-10

把你的自定义函数apps.bg_invalid_pr()代码也加入mysql_query()试试。

作者: ohmygirl   发布时间: 2011-10-10

/* 查找字符串,以‘%’分隔 */54(pstPowerRecord->TimeStr, 0, (INT)sizeof(pstPowerRecord->TimeStr));302, '%');301{
CCU_StrnCpy(pstPowerRecord->TimeStr, TakeOffSpace( pchFirst ), (INT)45(TakeOffSpace( pchFirst )));
}CHECK(pchNext, CCU_ERR) pchNext = TakeOffSpace( pchNext );
CHECK(pchNext, CCU_ERR)pstPowerRecord->ulSysPower = (UINT32)CCU_AtoI( pchNext );221;}
32 : 读取操作记录的接口UINT32 CCU_OptRead(CCU_OPT_TYPE enOptType, UINT8 ucStaIndex
, POPTRECORD pstOptRecord, UINT8 ucOptLen, UINT8 *pucOptCnt)
{INT i = 0;191;INT iBufLen = 0;CHAR* chOptBuf = CCU_NULL_PTR;UINT32 ulRetCode = CCU_OK;CHECK
if ( (enOptType >= CCU_MAX_OPT_TYPE) || (ucOptLen == 0) || (ucStaIndex >= OPTRECORDCOUNT))
{222;}*pucOptCnt = 0;/* 打开相应的操作记录文件 */fp = 44(OptFileName[ enOptType ], "rb");
CHECK(fp, CCU_ERR)iBufLen = MAXOPTRECODELEN + (INT)strlen(RECORD_SEPARATOR) + 1;
chOptBuf = (CHAR *)malloc( (UINT)iBufLen );CHECK(chOptBuf, CCU_ERR, fp)
/* 循环读取文件 */for (i = 0; i < ucOptLen; ++i){/* 读取一条记录 */
ulRetCode = CCU_READOPTRECORD(fp, (UINT)(ucStaIndex + i), chOptBuf, (UINT)iBufLen);
if (CCU_OK != ulRetCode){/* 如果读取文件失败,则认为文件读取完毕 */ulRetCode = CCU_OK;break;}
if (CCU_OK != CCU_ParseOptRecord(chOptBuf, MAXOPTRECODELEN, &(pstOptRecord[ *pucOptCnt ])))
{continue;}++(*pucOptCnt);}free( chOptBuf );192;return ulRetCode;}
33 : 节能模块读取数据的接口 CCU_MemAlloc(CCU_MEM_INFO 331
UINT32 CCU_PowerRead(CCU_POWER_TYPE enPowerType, UINT8 ucStaIndex, 
PSYSPOWER_LOC_UNIT pstPowerRecord, UINT8 ucPowerLen, UINT8 *pucPowerCnt)
{INT i = 0;191;INT iBufLen = 0;UINT32 ulRet = CCU_ERR;CHAR* pchPowerBuf = 52;CHECK
if ((ucPowerLen == 0) || (enPowerType >= CCU_MAX_POWER_TYPE) || (ucStaIndex > POWERRECORDCOUNT)){222;}
*pucPowerCnt = 0;/* 打开文件 */fp = 44(PowerFileName[ enPowerType ], "rb");CHECK(fp, CCU_ERR)
/* 申请内存 */iBufLen = MAXPOWERCODELEN + (INT)strlen(RECORD_SEPARATOR) + 1;
pchPowerBuf = (CHAR *)331, CCU_MEM_PT_NO, (UINT)iBufLen );if (52 == pchPowerBuf){192;222;}
/* 循环读取文件 */for (i = 0; i < ucPowerLen; ++i){/* 读取一条记录 */
ulRet = CCU_READPOWERRECORD(fp, (UINT)(ucStaIndex + i), pchPowerBuf, (UINT)iBufLen);

作者: fsk_wyf   发布时间: 2011-10-10

/* 读文件出错 */if (CCU_OK != ulRet){break;}
/* 解析读取的文件 */
if (CCU_OK != CCU_ParsePowerRecord(pchPowerBuf, MAXPOWERCODELEN, &(pstPowerRecord[ *pucPowerCnt ])))
 {continue;}++(*pucPowerCnt);}225, pchPowerBuf);pchPowerBuf = 52;192; 221;}
34 : 添加消息到消息队列 pstEfusePower->ulLoadPower 341 UINT32 CCU_SendEFSPowerMsg2Queue( 
CCU_OPT_TYPE enCCUOptType, PEFSPOWER_LOC_UNIT pstEfusePower ){226;MESSAGE stMsg;
UINT8 *pucRecodeBuf = 52;UINT8 ucPowerRecordCount = 0;INT8 acTmp[POWER_RECORE_LEN] = {0};
UINT8 ucPowerRecordIndex = 0;CHECK if ((CCU_EFUSE_POWER_HOUR_OPT_TYPE != enCCUOptType)
&& (CCU_EFUSE_POWER_DAY_OPT_TYPE != enCCUOptType)&& (CCU_EFUSE_POWER_MOUTH_OPT_TYPE != enCCUOptType))
{241;}pstMessage = (CCU_MESSAGE*)331, CCU_MEM_PT_NO, (INT)sizeof(CCU_MESSAGE));
CHECK(pstMessage, CCU_ERR_MPI_MALLOC_FAIL)
/* 获取当前时间 */pstMessage->enMessageType = CCU_OPT_MESSAGE_TYPE;
CCU_MemCpy(pstMessage->chTime, pstEfusePower->TimeStr, MAX_TIME_STR_LEN);
/* 不足的以空格补齐 */pucRecodeBuf = 201.chOptContent;201.enOptType = enCCUOptType;
54(pucRecodeBuf , 0, OPT_RECORE_LEN);ucPowerRecordCount = 46(341) / 46(341[0]);
43((INT8*)pucRecodeBuf, OPT_RECORE_LEN, "%ld,", pstEfusePower->ulTotalPower);
for (ucPowerRecordIndex = 0; ucPowerRecordIndex < ucPowerRecordCount; ucPowerRecordIndex++)
{43(acTmp, sizeof(acTmp), "%ld,", 341[ucPowerRecordIndex]);
CCU_StrnCat((INT8*)pucRecodeBuf, acTmp, OPT_RECORE_LEN);}
201.enOptLevel = CCU_EFUSE_POWER_OPT_LEVEL;201.iOptContentLen = (INT)45((INT8*)pucRecodeBuf);
/* 此变量未使用到,恒写为2 */stMsg.iMessageType = 2;
CCU_MemCpy(stMsg.aucBuf, (UINT8*)&pstMessage, 4);/* 将消息添加到消息队列 */
if (CCU_OK != ADA_QueueSynWrite((INT)g_iQueID, &stMsg, (INT)46(stMsg))){225, pstMessage); 222; } 221;}
35 : 写EFUSE功率 ucIndex 351 UINT32 CCU_EfusePowerWrite(CCU_OPT_TYPE enCCUOptType,
 PEFSPOWER_LOC_UNIT pstEfusePower, UINT8 ucPowerCount)
{UINT8 351 = 0;UINT32 ulRet = CCU_ERR;CHECK for (351 = 0; 351 < ucPowerCount; 351++)
{ulRet = CCU_SendEFSPowerMsg2Queue(enCCUOptType, &pstEfusePower[351]);193}221;}

作者: fsk_wyf   发布时间: 2011-10-10

相关阅读 更多