postgresql
2010-04-19 6 views 2 likes 
2

나는 이와 같은 코드에서 변수를 선언하려고 시도하지만 작동하지 않습니다. 문제가 무엇인지 말해 줄 수 있습니까? PL/pgSQL의 기능 내에서PostgreSQL에서 변수를 선언하는 방법

ERROR: syntax error at or near "VARCHAR" 
LINE 2: p_country VARCHAR; 


DECLARE 
    p_country VARCHAR; 
p_country : = ''; 
SELECT p_country; 
+0

문제에 대한 추가 데이터를 제공하십시오 – Karthik

+0

다음과 같이 작성하는 것이 좋습니다. DECLARE p_country VARCHAR; p_country : = ''; SELECT p_country; – user307880

+0

구문에 어떤 문제가 있습니까? – user307880

답변

2

이 같은 변수를 선언 할 수

CREATE FUNCTION identifier (arguments) RETURNS type AS ' 
    DECLARE 

    -- Declare an integer. 
    subject_id INTEGER; 

    -- Declare a variable length character. 
    book_title VARCHAR(10); 

     -- Declare a floating point number. 
    book_price FLOAT; 

    BEGIN 
    statements 
    END; 
' LANGUAGE 'plpgsql'; 

출처 : http://www.commandprompt.com/ppbook/x19832

+0

하지만 함수에서 변수를 선언하고 싶습니다. 가능한가? – user307880

+1

[아직] (http://developer.postgresql.org/pgdocs/postgres/sql-do.html) –

5

이 custom_variable_classes에 대한 postgresql.conf의 새로운 설정을 만듭니다

custom_variable_classes = 'var' 

구성을 다시로드하면 이제 "var"변수를 사용할 수 있습니다. 모든 데이터베이스에서.

SET var.p_country = 'US'; 
SELECT current_setting('var.p_country') AS p_country; 

그것은 아름다움은 아니지만, 작동 :

은 사용 SET를 변수 p_country을 만듭니다.

+0

재미 있습니다. 그러나 원격 서버에 대한 쿼리를 만드는 것이 중요합니다. 나는 postgresql.conf를 편집 할 수 없을 것이라고 생각한다. – user307880

+0

당신은 그들이 로켓 과학이 아닌 구성에서 이것을 추가하도록 요청할 수 있습니다. 임시 테이블을 사용하여 변수를 넣을 수도 있습니다. –

관련 문제