Postgresql 存储过程调试 1】的更多相关文章

看来人真的有些力不从心,半个月前还很得意掌握的简单的Postgresql 存储过程的调试,一段时间没使用,做新功能就忘了! Postgresql 在开源的数据库里面算是很强悍的了,但现在就是不方便调试 ,以前用firebirdSql,各种工具都支持调试,现在想改改数据库反倒遇到麻烦了. 言归正传,有文章说有调试的方法,需要打开服务,我试过了,现在是2013年12月,发行版本有9.2.5和9.3.1,按8.1和9.0 的方法打开服务,数据库都启动不了,而且对应的SQL在文章中所说的文件夹下根本就没…
转载自http://zhenghaoju700.blog.163.com/blog/static/13585951820116782843994/ 先安装一个PostgreSQL(见补充知识) 比较Oracle PL/SQL PL/SQL 中有 dbms_output.put_line("This is a log"); 可以进行简单的调试 当然我们PostgreSQL 也有相应的函数 RAISE NOTICE 'This is a log %', param: % 占位符 param…
注:本文来源于 < Mybatis调用PostgreSQL存储过程实现数组入参传递  > 前言 项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于PostgreSQL自带数组类型,所以有一个自定义函数的入参就是一个int数组,形如: CREATE OR REPLACE FUNCTION "public"."func_arr_update"(ids _int4)... 1 如上所示,参数是一个int数组,Mybatis提…
PostgreSQL的表,函数名称都是严格区分大小写的,所以在使用的时候没有注意大小写问题容易导致找不到函数名的错误,但最近两天我们发现,如果函数参数使用了自定义的数据类型,也会发生这个问题. 问题描述:   下面的示例测试代码: PWMIS.DataProvider.Data.AdoHelper db = MyDB.GetDBHelperByConnectionName("PostgreSQL");             IDataParameter para = db.GetPa…
-- 目标:动态更新表中数据 -- 老规矩上代码-----------------------------tablename 表名--feildname 字段名数组--feildvalue 字段值数组--returnvalue 返回值 create or replace function f_update ( tablename text, condition text, feildname text[], feildvalue text[], out returnvalue text ) as…
原创文章,转载请务必将下面这段话置于文章开头处(保留超链接).本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/12/27/SQL4_存储过程_Store Procedure/ 存储过程简介 什么是存储过程 百度百科是这么描述存储过程的:存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,首次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果有)来执行它.它…
说明: 在使用Postgis做路径分析时需要用到数据库的存储过程,但是存储过程逻辑很复杂,很想看一下每步的执行结果. 百度了一下,发现postgresql有插件可以支持调试存储过程. 解决方案: 1.打开pgAdmin 2.选择文件==>打开postgresql.conf 3.对话框中找到安装目录/版本号/data下的postgresql.conf文件 4.在弹出的后台配置编辑器中,找到shared_preload_libraries,并双击 5.弹窗中勾选启用,并配置plugin_debugg…
转自:http://www.cnblogs.com/xiangzhong/archive/2012/10/27/2742974.html 今天突然有同事问起,如何在sqlserver中调试存储过程(我们公司使用的是sqlserver 2008 R2),猛地一看,和以前使用sqlserver 2000真的有很大的不同,我真晕了. 于是琢磨了一下.SQLSERVER 2005中不知因何去掉了很重要的DEBUGGER功能,要调试,必须要安装VS2005专业版或者更高版本.非常不方便. 还好,SQLSE…
PL/SQL中为我们提供了[调试存储过程]的功能,可以帮助你完成存储过程的预编译与测试. 点击要调试的存储过程,右键选择TEST 如果需要查看变量,当然调试都需要.在右键菜单中选择Add debug information. start debugger(F9)开始我们的测试,Run(Ctrl+R) 随时在varible List中输入我们想查看的变量 其它: Step into(Ctrl+N):单步调试,进入下一步 Step over(Ctrl+O):结束该语句 Step out(Ctrl+T…
有如下一个存储过程 ), i_length ),OUT o_result INT) BEGIN SET @a= NULL; SET @b= NULL; SELECT id INTO @a FROM t_seq WHERE number= currentSeqNo and length= i_length ; IF (@a is null ) THEN select min(id) into @a FROM t_seq where length = i_length; select number…
1.类SQL PLUS窗口:File->New->Command Window,这个类似于oracle的客户端工具sql plus,但比它好用多了. 2.设置关键字自动大写:Tools->Preferences->Editor,将Keyword case选择Uppercase.这样在窗口中输入sql语句时,关键字会自动大写,而其它都是小写.这样阅读代码比较容易,且保持良好得编码风格,同理,在Tools->Preferences->Code Assistant(助手)里可…
介绍 PL/pgSQL 是PostgreSQL 数据库系统的一个可加载的过程语言. PL/pgSQL 的设计目标是创建一种可加载的过程语言,可以 用于创建函数和触发器过程, 为SQL 语言增加控制结构, 执行复杂的计算 继承所有用户定义类型.函数.操作符, 定义为被服务器信任的语言.PL/pgSQL创建的函数可以在那些使用内置函数一样的情形下使用. 比如,可以创建复杂的条件计算函数,并随后将之用于定义操作符或者用于函数索引中. 使用PL/pgSQL的优点 SQL是PostgreSQL和大多数其它…
 mysql不像oracle有plsqldevelper工具用来调试存储过程,所以有几种简单的方式追踪执行过程: 1.用一张临时表,记录调试过程: 2.直接在存储过程中,增加select xxx,在控制台查看结果: 3.把存储过程的sql复制到navicat查询中,然后SET @num使用自定义变量.   实际应用场景是三种方法都会用到,结合不同的场景使用. 方法1适用于有多条数据处理,处理结果无法通过变量来存储. 方法2适用于一般的存储过程,查看结果: 方法3适用于,需要一步步调优存储过程.执…
1.有用的链接 postgresql 常用小函数 Postgresql数据库的一些字符串操作函数 PostgreSQL function里面调用function PostgreSQL学习手册(函数和操作符<二>) PostgreSQL的存储过程简单入门 2.建立块环境(执行环境) do language plpgsql $$ declare begin ... .. . end $$; 如 do language plpgsql $$ declare today date :=now(); y…
最近学习postgresql,正一个小活要用上,所以就开始学习了!然而,学习的过程极其艰辛,但却也充满了乐趣. 一般来说数据库的操作不外如何增,删,改,查,而首要的就是要添加数据到数据库中,因为以前的经验,存储过程要比不用存储过程效率要高不少,至少我的程序环境是这样的结果! 所以就想要做写些存储过程,如果一个表一个存储过程,那仅存储过程就得写好几百个这个实是有点夸张了!(这还仅是插入.加上删除/修改/查询那得近上千) 那么能不能有个方法,可以减少工作量呢?自动根据表名,字段名及字段值与插入?PO…
1 返回结果集的存储过程 -- drop FUNCTION getall();CREATE or REPLACE FUNCTION getall() RETURNS SETOF users  AS$BODY$SELECT * from  users;$BODY$language SQL;     --  这里使用的SQL 2 返回单个数值的的存储过程 -- drop FUNCTION adduser2(CHARACTER VARYING);CREATE or REPLACE FUNCTION a…
免费下载链接:http://download.csdn.net/detail/meiyoudao/6371137  需要注册 调试还是 F10 类似的…
流程控制 讲解条件语句,循环语句. 本次环境会用到表emp:下面是emp执行语句. drop table emp; create table EMP( EMPNO numeric() not null, ENAME ), JOB ), MGR numeric(), HIREDATE date, SAL numeric( ), COMM numeric( ), DEPTNO numeric()); insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE,…
1. 异常错误处理 在PL/pgSQL函数中,如果没有异常捕获,函数会在发生错误时直接退出,与其相关的事物也会随之回滚.我们可以通过使用带有EXCEPTION子句的BEGIN块来捕获异常并使其从中恢复.见如下声明形式: [ <> ] [ DECLARE declarations ] BEGIN statements EXCEPTION WHEN condition [ OR condition ... ] THEN handler_statements WHEN condition [ OR…
1.调用没有OUT参数的存储过程: 创建存储过程: create or replace function get_code(a1 varchar(32)) returns varchar(32) as $$     declare the_result varchar(32);     begin         the_result := name from t_project where id = a1;    return the_result;  end; $$ language plp…
转了N多的SQL语句,可是自己用时,却到处是坑啊,啊,啊!!!!!!!!!!!!!!! 想写一个获取表中最新ID值. 上代码 CREATE TABLE department( ID INT PRIMARY KEY NOT NULL, d_code ), d_name ) NOT NULL, d_parentID ); --insert into department values(1,'001','office'); --insert into department values(2,'002'…
1.搜索找到存储过程的包,并打开 选中右击--view spec&body 2.找到要测试的存储过程,设置断点,进行测试…
必须使用oracle用户登录oracle@sqlplus system/system123 as sysdba 以SYS用户登录数据库,执行赋权操作: grant  DEBUG CONNECT SESSION to ucr_name; http://www.oracleonlinux.cn/2012/02/debug-procedures/…
1. return语句 有三个命令可以用来从函数中返回数据: RETURN RETURN NEXT RETURN QUERY 2. RETURN命令 语法: RETURN RETURN expression; 如果没有使用表达式 RETURN命令用于告诉这个函数已经完成执行了.如果返回标量类型,那么可以使用任何表达式.要返回一个复合(行)数值,你必须写一个记录或者行变量的expression. 2.1 案例1:带有表达式return案例 CREATE OR REPLACE FUNCTION ge…
什么是SQL函数? SQL函数包体是一些可执行的SQL语言.同时包含1条以上的查询,但是函数只返回最后一个查询(必须是SELECT)的结果. 除非SQL函数声明为返回void,否则最后一条语句必须是SELECT 在简单情况下,返回最后一条查询结果的第一行. 如果最后一个查询不返回任何行,那么该函数将返回NULL值. 如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype. 模板 CREATE OR REPLACE FUNCTION fun…
在数据库中直接调试  在数据库中直接调试是调试SQL Server 2005的存储过程的最简单的方法. 在Visual Stuido的IDE中你可以选择单步执行存储过程,然后就可以一条语句一条语句地单步执行了,同时你也可以检查和修改存储过程内的T-SQL变量和参数.本文结尾处提供下载的压缩包中包括一个SQL Server 2005 Express版本的Northwind数据库.我在其中添加了一个名为“DoThings”的存储过程,它有一个参数@CategoryID.这是一个没什么实用价值的存储过…
PostgreSQL 函数也称为 PostgreSQL 存储过程. PostgreSQL 函数或存储过程是存储在数据库服务器上并可以使用SQL界面调用的一组SQL和过程语句(声明,分配,循环,控制流程等). 它有助于您执行通常在数据库中的单个函数中进行多次查询和往返操作的操作.您可以在许多语言(如SQL,PL/pgSQL,C,Python等)中创建 PostgreSQL 函数. 语法: CREATE [OR REPLACE] FUNCTION function_name (arguments)…
[一]Sql Server 关于存储过程调试SQL2000是在查询分析器中的对象浏览器中选中需要调试的存储过程,右键----调试---输入参数开始调试.sqlserver2008中则完全不同,变成了必须要在SSMS中EXEC [PROCEDURE NAME] @VAR1,@VAR2,然后点绿色三角或者点菜单中的调试---启动调试.然后点工具栏的最右边的单步调试或者跳出等.下面的变量窗口和堆栈窗口等可以查看调试中变量等动态变化值.sqlserver2008调试的要求和条件:如果在引擎所在的电脑或服…
分类: 数据库管理 2005-06-03 13:57 9837人阅读 评论(5) 收藏 举报 sql server存储vb.net服务器sql语言 1.在查询分析器中调试 查询分析器中调试的步骤如下:    SQL 2000查询分析器        --左连的对象浏览器(没有的话按F8)        --对象项中        --右键调试的存储过程        --调试        --输入参数(必须输入所有的参数,包括默认值/输出参数        --点击执行        --出现…
一.问题描述 a)         目前调用读的存储过程的接口定义一般是:void  ReadDatalogs(Map<String,Object> map);,入参和出参都在这个map里面,这样用起来就很麻烦,我希望的是可以定义成:list<TimeData> ReadDataLogs(int stationId, int deviceId, Date startTime, Date endTime); 二.已经尝试的方法 a)         改变入参的传递方式: i.    …