小编vch*_*tta的帖子

列出PostgreSQL数据库的所有索引名称,列名称及其表名称

获取列表所有索引名称,列名和postgresql数据库表名的查询是什么?

我试图通过使用此查询获取数据库中所有索引的列表,但如何获取索引列表,列名称和表名称?

 SELECT *
 FROM pg_class, pg_index
 WHERE pg_class.oid = pg_index.indexrelid
 AND pg_class.oid IN (
     SELECT indexrelid
     FROM pg_index, pg_class
     WHERE pg_class.oid=pg_index.indrelid
     AND indisunique != 't'
     AND indisprimary != 't'
     AND relname !~ '^pg_');
Run Code Online (Sandbox Code Playgroud)

postgresql

53
推荐指数
4
解决办法
7万
查看次数

错误:语言c的权限被拒绝

使用非超级用户创建这样的函数时,我收到以下错误:

ERROR: permission denied for language c SQL state: 42501

创建的功能是:

CREATE OR REPLACE FUNCTION dblink_connect (text)
RETURNS text
AS '$libdir/dblink','dblink_connect'
LANGUAGE C STRICT;
Run Code Online (Sandbox Code Playgroud)

但是,如果我想向我的非超级用户授予语言C的许可,我会收到以下错误: postgres=# grant usage on language c to caixa; ERROR: language "c" is not trusted

那意味着,非超级用户无法使用C语言创建功能?或者还有什么我做错了吗?

c postgresql

27
推荐指数
2
解决办法
3万
查看次数

错误:`itoa`未在此范围内声明

我有一个名为itoa.cpp的示例c文件,如下所示:

#include <stdio.h>
#include <stdlib.h>

int main ()
{
  int i;
  char buffer [33];
  printf ("Enter a number: ");
  scanf ("%d",&i);
  itoa (i,buffer,10);
  printf ("decimal: %s\n",buffer);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我使用以下命令编译上面的代码时:

gcc itoa.cpp -o itoa

我收到此错误:

[root@inhyuvelite1 u02]# gcc itoa.cpp -o itoa
itoa.cpp: In function "int main()":
itoa.cpp:10: error: "itoa" was not declared in this scope

这段代码有什么问题?如何摆脱这个?

c

22
推荐指数
2
解决办法
7万
查看次数

如果服务器在使用dblink时未请求密码,则非超级用户无法连接

我想在我的应用程序中做一些跨数据库引用.简而言之,我有两个名为meta和op的数据库.我想做一些选择查询从元数据库到op数据库中的表,如下所示,但得到以下错误.我尝试使用密码而没有密码.顺便说一句,caixa用户是非超级用户和我的目标服务器(op数据库服务器具有MD5身份验证模式.)

meta=> select * from dblink('dbname=op password=caixa','SELECT op_col from op_table') AS t(op_col varchar);
Run Code Online (Sandbox Code Playgroud)

错误:需要密码

详细信息:如果服务器未请求密码,则非超级用户无法连接.

提示:必须更改目标服务器的身份验证方法.

上面的错误消息中的提示是什么意思?我需要更改服务器的身份验证模式吗?在不更改服务器的auth模式(MD5)的情况下,我无法运行上述查询?

postgresql

14
推荐指数
2
解决办法
2万
查看次数

使用psql时获取错误代码

当我使用psql.exe运行SQL脚本时,我发现错误时没有收到错误代码.有没有办法得到psql错误代码?

我尝试将VERBOSITY设置为'verbose',但没有用:

\set VERBOSITY 'verbose'
Run Code Online (Sandbox Code Playgroud)

我使用psql版本psql(PostgreSQL)8.4.2.

postgresql psql

11
推荐指数
1
解决办法
4132
查看次数

错误:COPY分隔符必须是单个单字节字符

我想将带有分隔符"〜,〜"的平面文件中的数据加载到PostgreSQL表中.我已经尝试过如下,但看起来对分隔符有限制.如果COPY语句不允许使用多个字符作为分隔符,有没有其他方法可以执行此操作?

metadb=# \COPY public.CME_DATA_STAGE_TRANS FROM 'E:\Infor\Outbound_Marketing\7.2.1\EM\metadata\pgtrans.log' WITH      DELIMITER AS '~,~'
ERROR:  COPY delimiter must be a single one-byte character
\copy: ERROR:  COPY delimiter must be a single one-byte character
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-copy

8
推荐指数
2
解决办法
2万
查看次数

是否有像Oracle这样的PostgreSQL加载器?

如何在postgresql中使用copy语句从文件中加载数据,其中文件有一个转义字符作为分隔符到postgresql表中?

有没有其他方法将数据从textfile加载到PostgreSQL表中?

postgresql

5
推荐指数
1
解决办法
7990
查看次数

关键字"VIEW"附近的语法不正确

当我运行下面的写程序时,我收到以下错误.这有什么问题?

错误:

消息156,级别15,状态1,过程tbv21Setup,第11行关键字"VIEW"附近的语法不正确.

**

CREATE PROCEDURE tbv21Setup

AS
BEGIN

    CREATE VIEW Cust_Address_View AS
        SELECT customer.individual_id   individual_id,
          customer.tb_customer_id   customer_id,
          customer.customer_category_lkp    customer_category_lkp,
          ADDRESS.postal_code   postal_code
        FROM CUSTOMER
        INNER JOIN INDIVIDUAL
        ON (CUSTOMER.individual_id = INDIVIDUAL.individual_id)
        JOIN
          (SELECT address_id ,
            a.individual_id ,
            postal_code ,
            obsolete_flag ,
            tb_modified_date
          FROM address a
          INNER JOIN
            (SELECT individual_id,
              MAX(ISNULL((tb_modified_date),('01/01/1900'))) AS max_tb_modified_date
            FROM ADDRESS
            WHERE obsolete_flag = 0
            GROUP BY individual_id
            ) AS xa
          ON (xa.individual_id                   = a.individual_id
          AND xa.max_tb_modified_date            = ISNULL((a.tb_modified_date),('01/01/1900')))
          WHERE a.obsolete_flag                  = 0
          ) AS ADDRESS ON …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2005

4
推荐指数
1
解决办法
7598
查看次数

在PostgreSQL中CREATE TABLE AS SELECT

CREATE TABLE AS SELECTPostgreSQL中的语句不是使用具有NOT NULL原始表约束的列创建新表.

我的表tab1有col1和col2,没有空约束.

create table tab1 (col1 varchar(23) not null, col2 int not null)

现在我正在创建一个新表tab2,其中包含表tab2的定义和数据,如下所示:

将表tab2创建为选项col1,从tab1创建col2

但是tab2的col1和col2没有NOT NULL约束.如何从原始表中的新表列中获取确切的NOT NULL约束状态?

如果有任何方法可以使用CREATE TABLE AS SELECT非常感谢的语句来实现这一点.CREATE TABLE AS SELECTOracle,DB2和SELECT .. INTOSQLServer中的语句将NOT NULL CONSTRAINT与数据一起复制.

postgresql

3
推荐指数
1
解决办法
6721
查看次数

列的位置在索引中

如何在PostgreSQL数据库中获取索引中列的位置?pg_index目录表中的indkey给出了该列表中该列的位置,但我希望列中的列的位置包含索引.

postgresql

2
推荐指数
1
解决办法
1204
查看次数

postgresql中的游标for循环

我们有一个用pl/sql(oracle)编写的函数,如下所示:

CREATE OR REPLACE PROCEDURE folder_cycle_check (folder_key IN NUMBER, new_parent_folder_key IN NUMBER) IS
    parent_of_parent NUMBER;
    ILLEGAL_CYCLE EXCEPTION;
    CURSOR parent_c IS
    SELECT parent_folder_key FROM folder
        WHERE folder_key = new_parent_folder_key;
BEGIN

IF folder_key = new_parent_folder_key THEN
    RAISE ILLEGAL_CYCLE;
END IF;

FOR parent_rec IN parent_c LOOP
    BEGIN folder_cycle_check(folder_key, parent_rec.parent_folder_key); END;
END LOOP;

END;
Run Code Online (Sandbox Code Playgroud)

现在,我必须在pl/pgsql(PostgreSQL)中重写相同的过程以实现类似的功能.请帮帮我发送pl/pgsql函数.

编辑(来自评论的格式化代码)

CREATE OR REPLACE FUNCTION folder_cycle_check(IN folder_key INTEGER, IN new_parent_folder_key INTEGER) 
  RETURNS VOID 
AS $procedure$ 
   DECLARE parent_of_parent INTEGER; 
   PARENT_C CURSOR FOR 
        SELECT parent_folder_key 
        FROM folder 
        WHERE folder_key = new_parent_folder_key; …
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql

1
推荐指数
1
解决办法
3万
查看次数

分段故障

这段代码有什么问题?我收到Segmentation故障!

#include<stdio.h>

int main()
{
        struct {
                char* name;
                int age;
        } *emp;
        char* empname = "Kumar";
        int empage = 31;
        emp->name = empname;
        emp->age = empage;
        printf("empname :%s\n",emp->name);
        printf("empage :%d",emp->age);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

以及如何纠正这个程序的工作?

c segmentation-fault

-4
推荐指数
1
解决办法
640
查看次数