DROP FUNCTION mail_condition(varchar,int4,varchar);
CREATE OR REPLACE FUNCTION mail_condition(varchar,int4,varchar)
RETURNS varchar AS '
DECLARE
cust_list_rec RECORD;
answer_profile_rec RECORD;
cst_id_rec RECORD;
userid_check_rec RECORD;
userid_check_sql varchar;
cust_list_sql varchar;
cst_id_sql varchar;
answer_profile_sql varchar;
lword varchar := '''';
rword varchar := '''';
condition varchar := '''';
pos integer NOT NULL DEFAULT 0;
pos2 int4 := 0;
leftdata varchar;
rightdata varchar;
len int4;
i int4 := 1;
userid_cnt int4 := 0;
BEGIN
-- del record when type = 2
delete from cust_targetlist where type = $2;
-- get condition
cust_list_sql := ''select * from cust_list_condition where account=''''''||$1||'''''' and enq_xml=''''''||$3||'''''' and question_id= '' || ''''''XXXX9'''''' || '''';
FOR cust_list_rec IN EXECUTE cust_list_sql LOOP
IF cust_list_rec.type=7 or cust_list_rec.type=8 or cust_list_rec.type=9 or cust_list_rec.type=10 or cust_list_rec.type=11 or cust_list_rec.type=12 THEN
IF i > 0 THEN
answer_profile_sql := ''select distinct a.id, p.question_id from cust_answer_admin a, cust_answer_profile p where a.id = p.id and a.enq_xml = ''''''||cust_list_rec.enq_xml ||'''''' '';
pos = position('','' in cust_list_rec.data);
IF pos > 0 THEN
lword := substr(cust_list_rec.data, 1, pos-1);
rword := substr(cust_list_rec.data, pos+1);
--rword := substr(tword,1);
IF length(lword) > 0 AND length(rword) > 0 THEN
condition := lword || ''@'' || rword;
condition := '' and p.prof_char='''''' || condition || '''''''';
END IF;
IF length(lword) > 0 AND length(rword) = 0 THEN
condition := '' and p.prof_char like '''''' || lword || ''%@%'''''';
END IF;
IF length(rword) > 0 AND length(lword) = 0 THEN
condition := '' and p.prof_char like '''''' || ''%@%'' || rword || '''''''';
END IF;
answer_profile_sql := answer_profile_sql || condition;
END IF;
FOR answer_profile_rec IN EXECUTE answer_profile_sql LOOP
userid_check_sql := ''select id from cust_targetlist where id='' || answer_profile_rec.id || '' and type='' || $2 || '' and resultflag=1'';
FOR userid_check_rec IN EXECUTE userid_check_sql LOOP
userid_cnt := userid_cnt + 1;
END LOOP;
IF userid_cnt = 0 THEN
insert into cust_targetlist values (answer_profile_rec.id,$2,1);
END IF;
END LOOP;
ELSE
return i;
END IF;
END IF;
i := i + 1;
END LOOP;
IF i = 1 THEN
cst_id_sql := ''select id from cust_answer_admin where invalid=0 and enq_xml= ''''''||$3||'''''''';
FOR cst_id_rec IN EXECUTE cst_id_sql LOOP
insert into cust_targetlist values (cst_id_rec.id,$2,1);
END LOOP;
return 1;
END IF;
return i;
END;
'
LANGUAGE 'plpgsql' VOLATILE;
分享到:
相关推荐
pgsql驱动jar包,jdk 本身没有提供访问数据库的能力,它只是提供了一些接口,具体功能由各个数据库的的驱动jar包来实现,举个例子,Connection 它只是一个接口,具体的实现由具体的数据库的的驱动jar包实现,你可以在...
什么是PostgreSQL? PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。 PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发...
在这个例子中,我们可能从本地文件系统或HDFS读取数据。 ```python data_df = spark.read.format("csv") \ .option("header", "true") \ .option("inferSchema", "true") \ .load("path/to/your/data.csv") ``` 3...
10. **应用案例**:通过真实世界的例子,展示如何在实际项目中运用PostgreSQL,帮助读者更好地理解和应用所学知识。 这本书的电子版以CHM(Compiled HTML Help)格式提供,是一种常见的Windows帮助文档格式,方便...
在这个例子中,我们传入一个整数数组,并且查询会查找id在该数组中的所有用户。 此外,`pg-sql`还支持条件语句、联接操作、子查询等复杂结构。例如,我们可以创建一个根据年龄筛选用户的助手: ```javascript ...
在这个例子中,子块内的quantity变量只在子块内部有效,不会影响外部的quantity变量。 ### 三、声明和基本语句 声明段允许声明变量并为其赋初值。变量类型包括整型(integer)、浮点型(real, double precision)...
例子要将Postgres通知作为AMQP消息发布到绑定到带有test绑定键的x-pgsql-listen交换的队列中,请在psql中运行以下命令: postgres = # NOTIFY test, 'This is a test';安装将发布zip文件的内容提取到RabbitMQ插件...
Schema::connection('pgsql')->raw("CREATE TABLE child_table (child_column VARCHAR(255)) INHERITS (parent_table)"); } public function down() { Schema::connection('pgsql')->raw("DROP TABLE child_...
在这个例子中,`session`对象代表了数据库连接,`execute`方法用于执行SQL语句,而`rowset`则用来存储查询结果。 对于MySQL,你需要确保已经安装了MySQL的C++连接器,这是SOCI与MySQL数据库通信所必需的。同样,...
例子 SELECT urlencode( ' my special string ' ' s & things? ' ); urlencode------------------------------------- my+special+string's+&+things?(1 row) SELECT content FROM http_get( ' ...
在本文中,我们将深入探讨如何使用MyBatis框架通过JDBC连接PostgreSQL数据库,构建一个最小的示例项目。MyBatis是一个轻量级的Java持久层框架,它简化了数据库操作,允许开发者将SQL语句直接嵌入到Java代码中,提供...
fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/include/pgsql/server -D_GNU_SOURCE -fPIC -DPIC -shared -o func1.so func1.c ``` 4. **安装函数**:使用`pg_ctl`或者在...
在Java开发中,数据库连接管理是一项关键任务,它关乎到应用程序的性能和资源利用效率。Druid是一个功能强大且性能优异的数据源连接池,而PostgreSQL则是一种流行的开源关系型数据库管理系统。本教程将详细介绍如何...
例子 > SELECT gzip('this is my this is my this is my this is my text'); gzip -------------------------------------------------------------------------- \x1f8b08000000000000132bc9c82c5600
在这个例子中: - `RETURNS SETOF mm`声明了函数将返回`mm`表类型的记录集。 - 单条`SELECT * FROM mm;`语句直接返回了表中的所有记录。 调用这个函数时,可以简单地执行: ```sql SELECT * FROM mmm(); ``` 这种...
总的来说,这个"Go-一个使用Golang和PostgreSQL的GraphQL完整例子"项目展示了如何整合这三个强大技术来构建一个高效的API服务。通过这种方式,开发者可以利用Go语言的性能优势,结合GraphQL的灵活性,以及PostgreSQL...
3. **数据类型**:在这个例子中,`pcjd`字段假设为数值类型(如`float`或`decimal`),用于存储评分或百分比数据。选择合适的数据类型对于保证数据的准确性和提高查询效率至关重要。 4. **性能优化**:虽然本示例中...
`LANGUAGE plpgsql`指定我们使用PL/pgSQL,这是PostgreSQL的内建过程语言,它支持这样的错误处理结构。 `EXCEPTION`部分可以捕获多种类型的错误,比如`WRONG_OBJECT_TYPE`、`FOREIGN_KEY_VIOLATION`等,通过使用`...
在这个例子中,我们首先创建一个`NpgsqlConnection`对象,然后打开连接。接着,我们创建`NpgsqlCommand`对象来执行SQL查询和更新。对于参数化查询,我们可以使用`AddWithValue`方法来设置参数,这有助于防止SQL注入...
### PostgreSQL基本操作知识点详解 #### 一、数据库与SQL简介 **PostgreSQL**是一种功能强大的开源...此外,文章还提供了一些实际的例子来帮助读者理解如何使用这些命令。希望本文能为初学者提供一个良好的学习起点。