+ -
当前位置:首页 → 问答吧 → postgreSQL问题

postgreSQL问题

时间:2011-10-26

来源:互联网

怎样执行下面简单的语句

  begin
  IF 3 > 2 THEN
  --一些简单的操作
  END IF;
  end

写一个函数去执行上面的语句是可以了。请问在什么地方可以只单单的执行上面的语句。

谢谢!!!

作者: weiluo12   发布时间: 2011-10-26

9以上支持匿名块,可以直接用代码,否则用SP,具体什么问题

作者: wwwwb   发布时间: 2011-10-26

引用楼主 weiluo12 的回复:
怎样执行下面简单的语句

begin
IF 3 > 2 THEN
--一些简单的操作
END IF;
end

写一个函数去执行上面的语句是可以了。请问在什么地方可以只单单的执行上面的语句。

谢谢!!!








不明白……

作者: yq510457   发布时间: 2011-10-26

具体问题就是怎样在命令行(或者其它方式):

postgres=# 


执行if语句,或者循环语句块(这样可以向数据库方便的插入基础数据)

我把语句块写在一个文件中然后在命令行运行

postgres=# \i c:/test.sql;

这样也是不行的,但是我直接在命令行创建函数就可以成功
把创建函数的语句写在一个文件中,然后运行

postgres=# \i c:/test.sql;

也是成功的。

作者: weiluo12   发布时间: 2011-10-26

什么版本?如果是9可以直接运行(支持匿名块),其它不行

作者: wwwwb   发布时间: 2011-10-26

最新的9.1.

请wwwwb写一个简单块给我,我执行试试

作者: weiluo12   发布时间: 2011-10-26

help中的:
DO $$DECLARE r record;
BEGIN
  FOR r IN SELECT table_schema, table_name FROM information_schema.tables
  WHERE table_type = 'VIEW' AND table_schema = 'public'
  LOOP
  EXECUTE 'GRANT ALL ON ' || quote_ident(r.table_schema) || '.' || quote_ident(r.table_name) || ' TO webuser';
  END LOOP;
END$$;

作者: wwwwb   发布时间: 2011-10-26

DO $$DECLARE r integer;
BEGIN
  r:=123;
  if r>456 then
  select 1;
  end if;
END$$;

作者: wwwwb   发布时间: 2011-10-26

DO $$DECLARE r integer;
BEGIN
  r:=123;
  if r>456 then
  select 1;
  end if;
END$$;

作者: wwwwb   发布时间: 2011-10-26

zw=# DO $$DECLARE r integer;
zw$# BEGIN
zw$# r:=123;
zw$# if r>456 then
zw$# select 1;
zw$# end if;
zw$# END$$;
DO

作者: WWWWA   发布时间: 2011-10-26

请问你用的那个版本的帮助文档(中文/英文)

作者: weiluo12   发布时间: 2011-10-26

edmms=#

edmms$#

这两个是什么区别啊!

谢谢楼上的!!!

作者: weiluo12   发布时间: 2011-10-26

就是修改语句的结束符,类似MYSQL的DELIMITER

作者: wwwwb   发布时间: 2011-10-26

edmms=#形式下";"就是结束符了,就不能执行块语句了,是我这样理解的吧?

如果要执行块语句就因该"切换到"edmms$#模式下,对吧?

非常感谢你!!!

随便请假一下sqlserver2000中的ISNUMERIC()函数在postgreSQL有什么函数可以替代的吗?

作者: weiluo12   发布时间: 2011-10-26

edmms=#形式下";"就是结束符了,就不能执行块语句了,是我这样理解的吧?

如果要执行块语句就因该"切换到"edmms$#模式下,对吧?

是这样

随便请假一下sqlserver2000中的ISNUMERIC()函数在postgreSQL有什么函数可以替代的吗?
没有

作者: wwwwb   发布时间: 2011-10-26

ISNUMERIC()确定表达式是否为一个有效的数字类型.
这个在postgreSQL怎样的去实现?

谢谢!!!

作者: weiluo12   发布时间: 2011-10-26

示例:
case when length(translate('1a2b3','0123456789',''))=0 then 'yes' else 'no' end,
case when length(translate('123','0123456789',''))=0 then 'yes' else 'no' end

作者: wwwwb   发布时间: 2011-10-26

相关阅读 更多

热门下载

更多