首页 > 编程语言 >PG 生成c#实体类的函数

PG 生成c#实体类的函数

时间:2023-05-17 14:44:11浏览次数:35  
标签:实体类 cur c# ctype -- CHR PG str Result

赠人玫瑰手有余香

 

CREATE OR REPLACE FUNCTION "public"."fun_Generate_Entity"(class_name text, tables_name text)
RETURNS "pg_catalog"."text" AS $BODY$
DECLARE
str_Result text;


s_cName varchar(64);
s_ctype varchar(64);
s_cisnull varchar(64);
s_cdesc varchar(64);
begin
--开发仔专用函数 by czj
--生成实体类(c#)
str_Result='public class '||class_name||' {';
str_Result=str_Result||CHR(10);--换行符
DECLARE cur CURSOR FOR

SELECT
a.attname as cName,
format_type(a.atttypid,a.atttypmod) as ctype,
a.attnotnull as cisnull,
col_description(a.attrelid,a.attnum) as cdesc
FROM pg_class as c,pg_attribute as a
WHERE
a.attrelid = c.oid
and a.attnum>0
and upper(c.relname) = upper( tables_name);


begin
FOR cur_result IN cur
LOOP


s_cName :=coalesce( cur_result.cName,'');
s_ctype := coalesce(cur_result.ctype,'');
s_cisnull := coalesce(cur_result.cisnull,false);
s_cdesc := coalesce(cur_result.cdesc,'');
raise notice 's_ctype %',s_ctype;

CONTINUE when s_cName like 'pg.dropped';--pg删除标识




str_Result=str_Result||'/// <summary>';
str_Result=str_Result||CHR(10);--换行符
str_Result=str_Result||'/// '||s_cdesc;
str_Result=str_Result||CHR(10);--换行符
str_Result=str_Result||'/// <summary>';
str_Result=str_Result||CHR(10);--换行符
str_Result=str_Result||'[Description("'||s_cdesc||'")]';
str_Result=str_Result||CHR(10);--换行符
if(s_ctype like '%char%')
then

s_ctype=' string ';
end if;
if(s_ctype like '%number%' or s_ctype like '%numeric%')
then

s_ctype=' double ';
end if;

if(s_ctype like '%date%' or s_ctype like '%timestamp%')
then

s_ctype=' string ';
end if;
str_Result=str_Result||'public '||s_ctype||' '||s_cName||' { get; set; }';

str_Result=str_Result||CHR(10);--换行符

end loop;

str_Result=str_Result||'}';
end ;


return str_Result;
end ;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100

 

标签:实体类,cur,c#,ctype,--,CHR,PG,str,Result
From: https://www.cnblogs.com/j2ee-web-01/p/17408685.html

相关文章

  • gitlab-runner 中的 Docker-in-Docker
    笔者个人理解:gitlab-runner安装后就是一个监听状态的runner,而通过gitlab-runnerregister注册的“实例”其实只是预定义的配置节,当消息抵达后,gitlab-runner根据消息内容选择相应的配置节启动执行线程。为了方便阐述和理解,本文也将每个配置节/执行线程称为runner实例。runn......
  • docker 开启2375端口,提供外部访问docker
      一、编辑docker文件:/usr/lib/systemd/system/docker.service命令:vim/usr/lib/systemd/system/docker.service修改ExecStart行,增加内容-Htcp://0.0.0.0:2375,修改后如下:ExecStart=/usr/bin/dockerd-Htcp://0.0.0.0:2375-Hfd://--containerd=/run/containerd/con......
  • CCDebugger&&ST-LINK V2的探针接线图
    CCDebugger&&ST-LINKV2的探针接线图CCDebuger: ST-LINKV2: ......
  • .Net Grpc Client调用Java Grpc Server
    1.JavaGrpcServer参考地址:grpc-javaos-maven-pluginprotobuf-maven-plugin1.新建SpringBoot项目[略]2.POM引入相关依赖<dependencies><dependency><groupId>io.github.lognet</groupId><artifactId>grpc......
  • docker 部署 RocketMQ
    1.安装nameServer1.搜索镜像dockersearchrocketmq2.拉取镜像dockerpullrocketmqinc/rocketmq 3.创建数据目录mkdir-p/usr/local/software/rocketmq/nameserver/logs/usr/local/software/rocketmq/nameserver/store4.运行docker命令dockerrun-d--r......
  • Spring+SpringMVC19_Spring练习-业务实现2
    六、用户表和角色表的分析  七、角色列表展示分析  八、角色列表展示-controller层实现  九、角色列表展示-service和dao层实现  十、角色列表展示-配置实现  十一、角色列表展示-页面展示  十二、角色的添加操作  十三、用户列表展示1 ......
  • Apache MINA 初
    3。编写一个ApacheMINA时间服务器该程序的功能非常简单,就是当客户端连接到服务器的9123端口后,程序将服务器当前的时间信息以字符串的形式发送给客户端。我们可以用Eclipse来创建编写这个程序。(1)在Eclipse中创建一个Java项目,例如TimeServerProject,然后将mina-core-2.0.0-M1.jar、......
  • 初识Springmvc
    1.什么是springmvc1).轻量级的框架2).基于spring的IOC和AOP进行封装3).基于Servlet进行封装4).实现了mvc设计思想的框架2.springmvc的执行流程图1).浏览器发送http请求2).前端控制器DispatcherServlet负责接收所有的请求3).前端控制器调度处理器映射器HandlerMapping处理请......
  • 浅谈Javascript 中几种克隆(clone)方式
    一:在Javascript里,如果克隆对象是基本类型,我们直接赋值就可以了:Js代码varsStr="kingwell";varcStr=sStr;alert(cStr);//输出kingwellsStr="abc";alert(cStr);//输出kingwell; 把一个值赋给另一个变量时,当那个变量的值改变的时候,另一个值不会受到影响。 ......
  • oracle 10G
      oracle10G安装:数据库口令不可以全部都是数字,否则无法顺利开启EnterpriseManager管理工具 管理工具:SQLplus isqlplus  http:;//localhost:5560/isqlplusEnterpriseManager http:;//localhost:5500/em启动数据库:startupopemmisbb若权限不是 ......