php运行SQL语句 提示 ORA-00923: 未找到要求的 FROM

深蓝9527 2014-07-30 10:07:15
$sql='SELECT
VIPBaseDataQuery.name AS name,
VIPBaseDataQuery.mobilePhonNo AS mobilePhonNo,
VIPBaseDataQuery.gender AS gender,
VIPBaseDataQuery.birthday AS birthday,
VIPBaseDataQuery.liveAddress AS liveAddress,
VIPBaseDataQuery.job.name AS job.name,
CardInfoQuery.currentBonus AS currentBonus,
CardInfoQuery.VipCardNumber AS VipCardNumber,
CardInfoQuery.cardType.name AS cardType.name
FROM
(SELECT
VIPCARD.FFreezeStatus AS FREEZESTATUS,
VIPCARD.FCardStatus AS CARDSTATUS,
VIPCARD.FMasterFlag AS MASTERFLAG,
VIPCARD.FVipCardNumber AS VIPCARDNUMBER,
VIPCARD.FPanelNumber AS PANELNUMBER,
PARENTCARDNUMBER.FVipCardNumber AS PARENTCARDNUMBER.VIPCARDNUMBER,
VIPNUMBER.FNumber AS VIPNUMBER.NUMBER,
VIPNUMBER.FName_l2 AS VIPNUMBER.NAME,
CARDTYPE.FName_l2 AS CARDTYPE.NAME,
VIPCARD.FCardKind AS CARDKIND,
CARDCATEGORY.FName_l2 AS CARDCATEGORY.NAME,
CARDGRADE.FName_l2 AS CARDGRADE.NAME,
VIPCARD.FParValue AS PARVALUE,
VIPCARD.FCostFee AS COSTFEE,
VIPCARD.FIsSecurity AS ISSECURITY,
VIPCARD.FIsEffectCtrl AS ISEFFECTCTRL,
VIPCARD.FEffectRange AS EFFECTRANGE,
VIPCARD.FEffectDate AS EFFECTDATE,
VIPCARD.FInValidateDate AS INVALIDATEDATE,
VIPCARD.FCurrentBonus AS CURRENTBONUS,
VIPCARD.FCumulateBonus AS CUMULATEBONUS,
VIPCARD.FCurrentValue AS CURRENTVALUE,
VIPCARD.FCumulateValue AS CUMULATEVALUE,
VIPCARD.FReturnProfitAmount AS RETURNPROFITAMOUNT,
VIPCARD.FCumulateProfit AS CUMULATEPROFIT,
VIPCARD.FLastReturnDate AS LASTRETURNDATE,
VIPCARD.FFirstConsumeDate AS FIRSTCONSUMEDATE,
VIPCARD.FLastConsumeDate AS LASTCONSUMEDATE,
VIPCARD.FConsumeCount AS CONSUMECOUNT,
VIPCARD.FCumulateConsumeAmout AS CUMULATECONSUMEAMOUT,
VIPCARD.FTeamCustomer AS TEAMCUSTOMER,
VIPCARD.FRemark AS REMARK,
ISSUEORG.FName_l2 AS ISSUEORG.NAME,
BIZMAN.FName_l2 AS BIZMAN.NAME,
VIPCARD.FID AS ID,
ISSUEBY.FName_l2 AS ISSUEBY.NAME,
VIPCARD.FIssueDate AS ISSUEDATE,
VIPCARD.FCheckCode AS CHECKCODE,
VIPCARD.FConsumWay AS CONSUMWAY,
VIPCARD.FIsCreditCard AS ISCREDITCARD,
VIPCARD.FCheckWay AS CHECKWAY,
VIPCARD.FCurrentCount AS CURRENTCOUNT,
SONCARDCATE.FName_l2 AS SONCARDCATE.NAME,
SONCARDCATE.FNumber AS SONCARDCATE.NUMBER,
VIPCARD.FValidityUnit AS VALIDITYUNIT

FROM orcl0320.T_RT_VipCard AS VIPCARD

LEFT OUTER JOIN orcl0320.T_BD_Person AS BIZMAN
ON VIPCARD.FBizManID = BIZMAN.FID

LEFT OUTER JOIN orcl0320.T_RT_CardCategory AS CARDCATEGORY
ON VIPCARD.FCardCategoryID = CARDCATEGORY.FID

LEFT OUTER JOIN orcl0320.T_RT_VIPBaseData AS VIPNUMBER
ON VIPCARD.FVipNumber = VIPNUMBER.FID

LEFT OUTER JOIN orcl0320.T_RT_VipCard AS PARENTCARDNUMBER
ON VIPCARD.FParentCardNumberID = PARENTCARDNUMBER.FID

LEFT OUTER JOIN orcl0320.T_ORG_Sale AS ISSUEORG
ON VIPCARD.FIssueOrgID = ISSUEORG.FID

LEFT OUTER JOIN orcl0320.T_RT_CardType AS CARDTYPE
ON VIPCARD.FCardTypeID = CARDTYPE.FID

LEFT OUTER JOIN orcl0320.T_RT_CardGrade AS CARDGRADE
ON VIPCARD.FCardGradeID = CARDGRADE.FID

LEFT OUTER JOIN orcl0320.T_PM_User AS ISSUEBY
ON VIPCARD.FIssueByID = ISSUEBY.FID

LEFT OUTER JOIN orcl0320.T_RT_CardCategory AS SONCARDCATE
ON VIPCARD.FSonCardCategoryId = SONCARDCATE.FID) AS CardInfoQuery LEFT JOIN (SELECT

VIPBASEDATA.FNumber AS NUMBER,
VIPBASEDATA.FName_l2 AS NAME,
VIPBASEDATA.FDescription_l2 AS DESCRIPTION,
VIPBASEDATA.FBaseStatus AS BASESTATUS,
VIPBASEDATA.FID AS ID,
VIPBASEDATA.FControlUnitID AS CU.ID,
VIPBASEDATA.FCertType AS CERTTYPE,
VIPBASEDATA.FIdCard AS IDCARD,
VIPBASEDATA.FCreditQuota AS CREDITQUOTA,
VIPBASEDATA.FUsedCreditQuota AS USEDCREDITQUOTA,
VIPBASEDATA.FGender AS GENDER,
VIPBASEDATA.FBirthday AS BIRTHDAY,
VIPBASEDATA.FFamilyCount AS FAMILYCOUNT,
VIPBASEDATA.FTelephoneNo AS TELEPHONENO,
VIPBASEDATA.FMobilePhonNo AS MOBILEPHONNO,
VIPBASEDATA.FEmail AS EMAIL,
VIPBASEDATA.FMSNNumber AS MSNNUMBER,
VIPBASEDATA.FQQNumber AS QQNUMBER,
VIPBASEDATA.FAcceptEmail AS ACCEPTEMAIL,
VIPBASEDATA.FAcceptSMS AS ACCEPTSMS,
VIPBASEDATA.FAcceptMail AS ACCEPTMAIL,
CITY.FName_l2 AS CITY.NAME,
VIPBASEDATA.FVehicleType AS VEHICLETYPE,
VIPBASEDATA.FVipDegree AS VIPDEGREE,
VIPBASEDATA.FHomeTown AS HOMETOWN,
VIPBASEDATA.FLiveAddress AS LIVEADDRESS,
VIPBASEDATA.FPostalcode AS POSTALCODE,
VIPBASEDATA.FWorkUnit AS WORKUNIT,
VIPBASEDATA.FRemark AS REMARK,
JOB.FName_l2 AS JOB.NAME,
EDUCATION.FName_l2 AS EDUCATION.NAME,
FAMILYINCOME.FName_l2 AS FAMILYINCOME.NAME,
NATION.FName_l2 AS NATION.NAME,
SOWNTOWN.FName_l2 AS SOWNTOWN.NAME,
COMMUNITY.FName_l2 AS COMMUNITY.NAME,
VIPBASEDATA.FWorkZipCode AS WORKZIPCODE,
CITY.FNumber AS CITY.NUMBER,
JOB.FNumber AS JOB.NUMBER,
EDUCATION.FNumber AS EDUCATION.NUMBER,
FAMILYINCOME.FNumber AS FAMILYINCOME.NUMBER,
NATION.FNumber AS NATION.NUMBER,
SOWNTOWN.FNumber AS SOWNTOWN.NUMBER,
COMMUNITY.FNumber AS COMMUNITY.NUMBER

FROM orcl0320.T_RT_VIPBaseData AS VIPBASEDATA

LEFT OUTER JOIN orcl0320.T_ORG_CtrlUnit AS CU
ON VIPBASEDATA.FControlUnitID = CU.FID

LEFT OUTER JOIN orcl0320.T_BD_City AS CITY
ON VIPBASEDATA.FCityID = CITY.FID

LEFT OUTER JOIN orcl0320.T_RT_Job AS JOB
ON VIPBASEDATA.FJobID = JOB.FID

LEFT OUTER JOIN orcl0320.T_RT_Education AS EDUCATION
ON VIPBASEDATA.FEducationID = EDUCATION.FID

LEFT OUTER JOIN orcl0320.T_RT_FamilyIncome AS FAMILYINCOME
ON VIPBASEDATA.FFamilyIncomeID = FAMILYINCOME.FID

LEFT OUTER JOIN orcl0320.T_RT_Nation AS NATION
ON VIPBASEDATA.FNationID = NATION.FID

LEFT OUTER JOIN orcl0320.T_RT_Sowntown AS SOWNTOWN
ON VIPBASEDATA.FSowntownID = SOWNTOWN.FID

LEFT OUTER JOIN orcl0320T_RT_Community AS COMMUNITY
ON VIPBASEDATA.FCommunityID = COMMUNITY.FID) AS VIPBaseDataQuery ON (CardInfoQuery.vipNumber.number=VIPBaseDataQuery.number)';

$oci_rs=oci_parse($dbconn,$sql);
求指教
...全文
337 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bw555 2014-07-31
  • 打赏
  • 举报
回复
如果存在特殊字符需要用双引号引起来
美到心痛 2014-07-31
  • 打赏
  • 举报
回复
引用 2 楼 zlloct 的回复:
[quote=引用 1 楼 sjcss 的回复:] 你是sqlserver的语句直接用在oracle上的吧,呵~ FROM orcl0320.T_RT_VIPBaseData AS VIPBASEDATA 在oracle 中要改成 FROM orcl0320.T_RT_VIPBaseData VIPBASEDATA 其它表名后面的as 也要去掉,然后再试试 最简单的方法是把你的所有as 替换成 空格
问题的关键不在这里,oracle 里面也可以用as,关键在于别名里面别用特殊字符,如下: select empno as sss from scott.emp (正确) select empno as sss.ss from scott.emp (报错)[/quote] 嗯,你的是对的,呵~
CT_LXL 2014-07-30
  • 打赏
  • 举报
回复
引用 1 楼 sjcss 的回复:
你是sqlserver的语句直接用在oracle上的吧,呵~ FROM orcl0320.T_RT_VIPBaseData AS VIPBASEDATA 在oracle 中要改成 FROM orcl0320.T_RT_VIPBaseData VIPBASEDATA 其它表名后面的as 也要去掉,然后再试试 最简单的方法是把你的所有as 替换成 空格
问题的关键不在这里,oracle 里面也可以用as,关键在于别名里面别用特殊字符,如下: select empno as sss from scott.emp (正确) select empno as sss.ss from scott.emp (报错)
美到心痛 2014-07-30
  • 打赏
  • 举报
回复
你是sqlserver的语句直接用在oracle上的吧,呵~ FROM orcl0320.T_RT_VIPBaseData AS VIPBASEDATA 在oracle 中要改成 FROM orcl0320.T_RT_VIPBaseData VIPBASEDATA 其它表名后面的as 也要去掉,然后再试试 最简单的方法是把你的所有as 替换成 空格

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧