急求高手解答

ninanyu 2010-10-31 05:01:57
在postgres里查询时:

当我用select * from myview where patient_name like '%a%'
出来的table中有三行结果

但是当我用function:
create or replace function GetHealthSummarybyName(varchar(100)) returns setof myview
as 'select * from myview where patient_name like ''%$1%'';' language 'sql';

select GetHealthSummarybyName('a')

出来的table中却没有结果。
估计是调用以后传值有了变化
请高手解答,应该怎样改才能将用function做出的结果也是正确的???
...全文
77 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaobn_cn 2010-11-01
  • 打赏
  • 举报
回复
varchar(100)改成varchar2(100)试下,或者在里面使用的时候加上trim。
ninanyu 2010-10-31
  • 打赏
  • 举报
回复
returns setof myview(返回值)
njlywy 2010-10-31
  • 打赏
  • 举报
回复
MS少了返回值…
zhangyangkuku 2010-10-31
  • 打赏
  • 举报
回复
我也不太懂,我帮你问一下好了
zhangyangkuku 2010-10-31
  • 打赏
  • 举报
回复
语法不对好像
ninanyu 2010-10-31
  • 打赏
  • 举报
回复
如果我写的语法不对的话,哪位高手能不能告诉我应该怎么弄这个呢?
ninanyu 2010-10-31
  • 打赏
  • 举报
回复
select GetHealthSummarybyName('a') 将a传递到GetHealthSummarybyName,
执行select *
from myview
where patient_name like ''%$1%'',其中$1就是传递的值a
我执行select *
from myview
where patient_name like '%a%' 是能运行出想要的结果的,但是按照老师要求编一个function,就发现出来的table没有结果了
这里myview是之前create的一个view
ninanyu 2010-10-31
  • 打赏
  • 举报
回复
要求是要用函数
gelyon 2010-10-31
  • 打赏
  • 举报
回复
函数有问题吧,参数都没得!
  • 打赏
  • 举报
回复
你这个是什么语法啊?再说你这个需求也没必要用函数啊
直接用sql语句就可以了

17,078

社区成员

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

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