找回密码
 立即注册
相关推荐换一批
  1. YY 0827-2011 医用电气设备 第2部分:转运培养箱安全专用要求
  2. YY/T 0909-2013 一次性使用低阻力注射器
  3. YY 0948-2015 心肺转流系统一次性使用动静脉插管
  4. YY/T 0980.3-2016 一次性使用活组织检查针 第3部分:机动装配式
  5. YY/T 0980.4-2016 一次性使用活组织检查针 第4部分:机动一体式
  6. YY/T 0980.2-2016 一次性使用活组织检查针 第2部分:手动式
  7. YY/T 0486-2016/ISO 14408 :2005 激光手术专用气管导管标记和随机信息的要求
  8. YY/T 0980.1-2016 一次性使用活组织检查针 第1部分:通用要求
  9. YY/T 0243-2016 一次性使用注射器用活塞
  10. YY/T 1470-2016 一次性使用脐带剪(切)断器
  11. YY 1271-2016 心肺转流系统一次性使用吸引管
  12. YY/T 1434-2016 R类体外辅助生殖技术用医疗器械体外鼠胚试验
  13. YY 0832.2-2015 X辐射放射治疗立体定向及计划系统 第2部分:体部X辐射放射治疗立体定
  14. YY/T 1566.1-2017 一次性使用自体血处理器械 第1部分:离心杯式血细胞回收器
  15. YY/T 1576-2017 组织工程医疗器械产品可吸收生物材料植入试验
  16. YY/T 0994-2015 磁刺激设备
  17. YY/T 0978-2016/ISO 5362 :2006 麻醉储气囊
  18. YY/T 1610-2018 麻醉和呼吸设备医用氧气湿化器
  19. YY/T 0990-2015 聚合物基牙体修复材料临床试验指南
  20. GB/T 44143-2024科技人才评价规范
  21. TB/T 2302-92 铁路车站货车篷布运用管理作业标准
  22. YY 91010~91011-1999 牙科旋转器械配合尺寸牙科旋转器械基本尺寸和标号
  23. YY 0765.1-2009 一次性使用血液及血液成分病毒灭活器材 第1部分:亚甲蓝病毒灭活器材
  24. YY/T 1229-2014 钙测定试剂(盒)
函数需要使用返回 | 软件设计/软件工程 2022-05-06 326 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
问题
我正在尝试使用 postgres 函数构建参数化视图:
  1. CREATE FUNCTION schemaB.testFunc(p INT)
  2. RETURNS TABLE
  3. AS
  4. RETURN (SELECT * FROM schemaZ.mainTable WHERE id=p)
复制代码

问题总是一样的:

你知道我做错了什么吗?

回答
您需要指定“返回表”的列,这可以使用

返回表(col_1 整数,col_2 文本,...)

在您的示例中,仅返回一个表中的行,因此更易于使用

返回主表集

如手册所述,函数体需要用单引号括起来,或者使用美元引号。

由于存储函数可以用多种不同的语言在 Postgres 中编写,因此您还需要指定一种语言——在这种情况下,语言 sql 是合适的。

因此,要将所有这些放在一起,您需要:
  1. CREATE FUNCTION schemaB.testFunc(p_id INT)
  2.   RETURNS setof  schemaZ.mainTable
  3. AS
  4. $$
  5. SELECT *
  6. FROM schemaZ.mainTable
  7. WHERE id = p_id
  8. $$
  9. language sql;
复制代码

语言 sql 函数不需要 return 语句。





上一篇:Git bash 和 Git GUI 不适用于 Windows 10
下一篇:MySQL C++ 连接器内存泄漏