ORACLE存储过程中的查询语句怎么设啊

各位大侠:我在SQL窗口中写的语句可以运行SELECTOTHERBILL.FIDID,OTHERBILL.FNumber单据编号,OTHERBILL.FBillDate单... 各位大侠:
我在SQL窗口中写的语句可以运行
SELECT
OTHERBILL.FID ID,
OTHERBILL.FNumber 单据编号,
OTHERBILL.FBillDate 单据日期,
OTHERBILL.FBizDate 业务日期,
OTHERBILL.FAmount 应收金额,
OTHERBILL.FTotalAmount 整单金额合计,
OTHERBILL.FTotalTax 整单税额合计,
ENTRY.FID 分录ID,
MATERIAL.FName_l2 物料名称,
MATERIAL.FNumber 物料编码,
MATERIAL.FModel 规格型号,
ENTRY.FQuantity 数量,
ENTRY.FPrice 单价,
ENTRY.FTaxRate 税率,
ENTRY.FTaxPrice 含税单价,
ENTRY.FRealPrice 实际单价,
ENTRY.FActualPrice 实际含税单价,
ENTRY.FRecievePayAmount 价税合计,
ENTRY.FAmount 金额,
ENTRY.FTaxAmount 税额,
OTHERBILL.FIsInitializeBill 是否期初单据,
OTHERBILL.FIsImportBill 是否是导入单据,
OTHERBILL.FIsTransBill 是否转移生成单据

FROM T_AR_OtherBill OTHERBILL

INNER JOIN T_AR_OtherBillentry ENTRY
ON OTHERBILL.FID = ENTRY.FParentID

LEFT OUTER JOIN T_BD_Material MATERIAL
ON ENTRY.FMaterialID =MATERIAL.FID

where MATERIAL.FNumber like '02.02%';

在存储过程中应用该语句

if intcount=0 then
strSql := ' create table eco_price_list as
SELECT OTHERBILL.FID ID,OTHERBILL.FNumber 单据编号,
OTHERBILL.FBillDate 单据日期,OTHERBILL.FBizDate 业务日期,
OTHERBILL.FAmount 应收金额,OTHERBILL.FTotalAmount 整单金额合计,
OTHERBILL.FTotalTax 整单税额合计,ENTRY.FID 分录ID,
MATERIAL.FName_l2 物料名称,MATERIAL.FNumber 物料编码,
MATERIAL.FModel 规格型号,ENTRY.FQuantity 数量,
ENTRY.FPrice 单价,ENTRY.FTaxRate 税率,
ENTRY.FTaxPrice 含税单价,ENTRY.FRealPrice 实际单价,
ENTRY.FActualPrice 实际含税单价,ENTRY.FRecievePayAmount 价税合计,
ENTRY.FAmount 金额,ENTRY.FTaxAmount 税额,
OTHERBILL.FIsInitializeBill 是否期初单据,
OTHERBILL.FIsImportBill 是否是导入单据,
OTHERBILL.FIsTransBill 是否转移生成单据

FROM T_AR_OtherBill OTHERBILL

INNER JOIN T_AR_OtherBillentry ENTRY
ON OTHERBILL.FID = ENTRY.FParentID

LEFT OUTER JOIN T_BD_Material MATERIAL
ON ENTRY.FMaterialID =MATERIAL.FID';

strsql:=strsql||'where MATERIAL.FNumber like '||'''02.02%''';

execute immediate strSql;
end if;

编译能通过,在调用时出错
主要看WHERE后面的子句

出错错误在
strsql:=strsql||'where MATERIAL.FNumber like '||'''02.02%''';
把最后那句删掉就能执行了
但是不能限制条件了
展开
 我来答
忆似血中剑
2012-07-31 · TA获得超过275个赞
知道小有建树答主
回答量:556
采纳率:0%
帮助的人:250万
展开全部
strsql:=strsql||'where MATERIAL.FNumber like '||'''02.02%''';

明显是where和上面的没有一个分隔的符号导致的撒,在where前加一人空格不就OK 了,不然别个oracle如何才能判断你的语句呢。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
yangquneng
2012-08-04 · TA获得超过177个赞
知道小有建树答主
回答量:200
采纳率:100%
帮助的人:49.4万
展开全部
strsql:=strsql||' where MATERIAL.FNumber like '||'''02.02%''';

注意:
我在你的where前面加了个空格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流浪云风
2012-07-30 · TA获得超过4315个赞
知道大有可为答主
回答量:1119
采纳率:69%
帮助的人:922万
展开全部
错误提示是什么?发出来看看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
请叫我召哥
2012-07-31 · TA获得超过792个赞
知道小有建树答主
回答量:572
采纳率:95%
帮助的人:373万
展开全部
应该是你单引号打得有问题! where条件前面要加空格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ge上善若水
2012-08-01 · 超过11用户采纳过TA的回答
知道答主
回答量:241
采纳率:0%
帮助的人:89.3万
展开全部
我做任务
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式