主頁 >  其他 > 如何回傳“動態”表?不匹配似乎沒有意義

如何回傳“動態”表?不匹配似乎沒有意義

2021-11-06 14:01:40 其他

我收到錯誤:宣告回傳記錄的函式中的回傳型別不匹配

我對回傳的每一列都使用了 pg_typeof 以確保型別正確,但我仍然無法使其作業。

我需要回傳查詢,以便我可以構建另一個函式來讀取結果并呼叫另一個函式 (PL/PGSQL) 來創建示例人員。它不能是一個簡單的 INSERT,因為有許多規則需要遵循,這些規則已經由另一個名為 create_person 的 FUNCTION 完成(此處未顯示)

DROP TABLE IF EXISTS "common_last_name" CASCADE;

DROP TABLE IF EXISTS "common_first_name" CASCADE;

DROP TABLE IF EXISTS "common_nickname" CASCADE;

DROP TABLE IF EXISTS "common_honorific" CASCADE;

DROP TABLE IF EXISTS "common_suffix" CASCADE;

DROP TABLE IF EXISTS "common_stop_word" CASCADE;

DROP TABLE IF EXISTS "common_email_domain" CASCADE;

DROP TABLE IF EXISTS "common_document_type" CASCADE;

DROP TABLE IF EXISTS "common_year_of_birth" CASCADE;

DROP FUNCTION IF EXISTS _get_sample_data;

CREATE TABLE "common_last_name" (
    "last_name" text PRIMARY KEY,
    "ratio" numeric NOT NULL,
    "last_name_phonetic" text NOT NULL,
    "last_name_phonetic_alt" text,
    "inserted_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    "updated_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL
);

CREATE TABLE "common_first_name" (
    "first_name" text PRIMARY KEY,
    "ratio" numeric NOT NULL,
    "first_name_phonetic" text NOT NULL,
    "first_name_phonetic_alt" text,
    "genre" text,
    "genre_m_f_percentage" int,
    "inserted_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    "updated_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL
);

CREATE TABLE "common_nickname" (
    "name" text NOT NULL,
    "name_phonetic" text NOT NULL,
    "name_phonetic_alt" text NOT NULL,
    "nickname" text NOT NULL,
    "nickname_phonetic" text NOT NULL,
    "nickname_phonetic_alt" text NOT NULL,
    "genre" text NOT NULL,
    "inserted_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    "updated_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL
);

CREATE TABLE "common_honorific" (
    "honorific" text PRIMARY KEY,
    "inserted_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    "updated_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL
);

CREATE TABLE "common_suffix" (
    "suffix" text PRIMARY KEY,
    "inserted_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    "updated_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL
);

CREATE TABLE "common_stop_word" (
    "stop_word" text PRIMARY KEY,
    "inserted_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    "updated_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL
);

CREATE TABLE "common_email_domain" (
    "domain_name" text PRIMARY KEY,
    "ratio" numeric NOT NULL,
    "inserted_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    "updated_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL
);

CREATE TABLE "common_document_type" (
    "country_iso_document_type" text PRIMARY KEY,
    "ratio" numeric NOT NULL,
    "inserted_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    "updated_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL
);

CREATE TABLE "common_year_of_birth" (
    "year" int,
    "ratio" numeric NOT NULL,
    "inserted_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL,
    "updated_at" timestamp WITH time zone DEFAULT timezone('utc'::text, now()) NOT NULL
);

---------------------------
CREATE OR REPLACE FUNCTION _get_sample_data(p_number_of_records INT) 
RETURNS TABLE(first_name TEXT, last_name TEXT, email TEXT, phone TEXT, document TEXT, date_of_birth TIMESTAMP) 
AS $$
WITH first_names_weighted AS 
(
    SELECT
        first_name,
        SUM(ratio) OVER (
    ORDER BY
        first_name) - ratio AS lower_bound,
        SUM(ratio) OVER (
    ORDER BY
        first_name) AS upper_bound 
    FROM
        common_first_name 
),
last_names_weighted AS 
(
    SELECT
        last_name,
        SUM(ratio) OVER (
    ORDER BY
        last_name) - ratio AS lower_bound,
        SUM(ratio) OVER (
    ORDER BY
        last_name) AS upper_bound 
    FROM
        common_last_name 
),
email_domain_weighted AS 
(
    SELECT
        domain_name,
        SUM(ratio) OVER ( 
    ORDER BY
        domain_name ) - ratio AS lower_bound,
        SUM(ratio) OVER ( 
    ORDER BY
        domain_name ) AS upper_bound 
    FROM
        common_email_domain 
),
document_type_weighted AS 
(
    SELECT
        country_iso_document_type,
        SUM(ratio) OVER ( 
    ORDER BY
        country_iso_document_type ) - ratio AS lower_bound,
        SUM(ratio) OVER ( 
    ORDER BY
        country_iso_document_type ) AS upper_bound 
    FROM
        common_document_type 
),
year_of_birth_weighted AS 
(
    SELECT
        YEAR,
        SUM(ratio) OVER ( 
    ORDER BY
        YEAR ) - ratio AS lower_bound,
        SUM(ratio) OVER ( 
    ORDER BY
        YEAR ) AS upper_bound 
    FROM
        common_year_of_birth 
),
randoms AS 
(
    SELECT
        random() * ( 
        SELECT
            SUM(ratio) 
        FROM
            common_first_name ) AS f_random,
            random() * ( 
            SELECT
                SUM(ratio) 
            FROM
                common_last_name ) AS l_random,
                random() * ( 
                SELECT
                    SUM(ratio) 
                FROM
                    common_email_domain ) AS e_random,
                    random() * ( 
                    SELECT
                        SUM(ratio) 
                    FROM
                        common_document_type ) AS d_random,
                        random() * ( 
                        SELECT
                            SUM(ratio) 
                        FROM
                            common_year_of_birth ) AS y_random 
                        FROM
                            generate_series(1, p_number_of_records ) 
)
SELECT
    --r, 
    first_name AS first_name,
    last_name AS last_name,
    LOWER( SUBSTRING( first_name, 1, 2   (random() * (length(first_name) - 2))::INTEGER) || SUBSTRING( last_name, 1, 2   (random() * (length(last_name) - 2))::INTEGER) || '@' || domain_name ) AS email,
    ' 1 ' || lpad(round(random() * 999)::text, 3, '0') || ' ' || lpad(round(random() * 999)::text, 3, '0') || ' ' || lpad(round(random() * 9999)::text, 4, '0') AS phone,
    CASE
        WHEN
            POSITION('.sin' IN country_iso_document_type) > 1 
        THEN
            country_iso_document_type || '.' || lpad((round(random() * 999))::TEXT, 3, '0') || '-' || lpad((round(random() * 999))::TEXT, 3, '0') || '-' || lpad((round(random() * 999))::TEXT, 3, '0') 
        ELSE
            CASE
                WHEN
                    POSITION('.driver' IN country_iso_document_type) > 1 
                THEN
                    country_iso_document_type || '.' || chr((65   random()*25)::INT) || lpad(CAST(round(random() * 99999) AS text), 5, '0') || '-' || lpad((round(random() * 99999))::TEXT, 5, '0') || '-' || lpad((round(random() * 99999))::TEXT, 5, '0') 
                ELSE
                    CASE
                        WHEN
                            POSITION('.passport' IN country_iso_document_type) > 1 
                        THEN
                            country_iso_document_type || '.' || chr((65   random()*25)::INT) || chr((65   random()*25)::INT) || lpad((round(random() * 999999999999))::TEXT, 12, '0') 
                        ELSE
                            NULL 
                    END
            END
    END
    AS document,
    make_date(YEAR, (round(1   random() * 11))::INTEGER, 1)   make_interval(days => (round(1   random() * 30))::INTEGER) AS dob 
FROM
    randoms r 
    CROSS JOIN
        first_names_weighted f 
    CROSS JOIN
        last_names_weighted l 
    CROSS JOIN
        email_domain_weighted e 
    CROSS JOIN
        document_type_weighted d 
    CROSS JOIN
        year_of_birth_weighted y 
WHERE
    f.lower_bound <= r.f_random 
    AND r.f_random <= f.upper_bound 
    AND l.lower_bound <= r.l_random 
    AND r.l_random <= l.upper_bound 
    AND e.lower_bound <= r.e_random 
    AND r.e_random <= e.upper_bound 
    AND d.lower_bound <= r.d_random 
    AND r.d_random <= d.upper_bound 
    AND y.lower_bound <= r.y_random 
    AND r.y_random <= y.upper_bound;
END;
$$ language sql;


-- ***SAMPLE DATA
--Common email domains
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('gmail.com', 200);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('yahoo.com', 20);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('outlook.com', 20);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('hotmail.com', 20);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('icloud.com', 10);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('yahoo.ca', 10);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('shaw.ca', 10);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('live.ca', 10);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('aol.com', 10);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('protonmal.com', 4);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('zoho.com', 4);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('startmail.com', 4);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('thexyz.com', 2);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('gmial.com', 10);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('yaho.com', 5);
INSERT INTO common_email_domain(domain_name, ratio) VALUES ('outloock.com', 5);

--Common year of birth
--1.7 ratio 18-24 age
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-18, 17);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-19, 17);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-20, 17);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-21, 17);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-22, 17);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-23, 17);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-24, 17);
--5.2 ratio 25-44 age
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-25, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-26, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-27, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-28, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-29, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-30, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-31, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-32, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-33, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-34, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-35, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-36, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-37, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-38, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-39, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-40, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-41, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-42, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-43, 52);
INSERT INTO common_year_of_birth(year, ratio) VALUES (date_part('year', CURRENT_DATE)-44, 52);

--Common document types
INSERT INTO common_document_type(country_iso_document_type, ratio) VALUES ('', 1000);
INSERT INTO common_document_type(country_iso_document_type, ratio) VALUES ('ca.sin', 100);
INSERT INTO common_document_type(country_iso_document_type, ratio) VALUES ('ca.driver-licence', 100);
INSERT INTO common_document_type(country_iso_document_type, ratio) VALUES ('in.passport', 8);
INSERT INTO common_document_type(country_iso_document_type, ratio) VALUES ('us.passport', 6);
INSERT INTO common_document_type(country_iso_document_type, ratio) VALUES ('cn.passport', 4);
INSERT INTO common_document_type(country_iso_document_type, ratio) VALUES ('mx.passport', 4);
INSERT INTO common_document_type(country_iso_document_type, ratio) VALUES ('br.passport', 4);
INSERT INTO common_document_type(country_iso_document_type, ratio) VALUES ('ca.passport', 1);

--Common First Names
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('John', 0.01827302261, dmetaphone('John'), dmetaphone_alt('John'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('David', 0.01546078785, dmetaphone('David'), dmetaphone_alt('David'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Robert', 0.01443493568, dmetaphone('Robert'), dmetaphone_alt('Robert'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Michael', 0.01203178307, dmetaphone('Michael'), dmetaphone_alt('Michael'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Paul', 0.009156650734, dmetaphone('Paul'), dmetaphone_alt('Paul'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Richard', 0.007790220995, dmetaphone('Richard'), dmetaphone_alt('Richard'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('James', 0.007687311565, dmetaphone('James'), dmetaphone_alt('James'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Peter', 0.00749865699, dmetaphone('Peter'), dmetaphone_alt('Peter'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('William', 0.006330570112, dmetaphone('William'), dmetaphone_alt('William'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Brian', 0.006272669254, dmetaphone('Brian'), dmetaphone_alt('Brian'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Mary', 0.006226325682, dmetaphone('Mary'), dmetaphone_alt('Mary'), 'f', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Linda', 0.005831280103, dmetaphone('Linda'), dmetaphone_alt('Linda'), 'f', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Daniel', 0.00570003053, dmetaphone('Daniel'), dmetaphone_alt('Daniel'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Mark', 0.005683095101, dmetaphone('Mark'), dmetaphone_alt('Mark'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Chris', 0.005489481954, dmetaphone('Chris'), dmetaphone_alt('Chris'), 'm', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Karen', 0.005429559525, dmetaphone('Karen'), dmetaphone_alt('Karen'), 'f', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Jennifer', 0.005307616808, dmetaphone('Jennifer'), dmetaphone_alt('Jennifer'), 'f', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Lisa', 0.005023833946, dmetaphone('Lisa'), dmetaphone_alt('Lisa'), 'f', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Susan', 0.004946709088, dmetaphone('Susan'), dmetaphone_alt('Susan'), 'f', 100); 
INSERT INTO common_first_name(first_name, ratio, first_name_phonetic, first_name_phonetic_alt, genre, genre_m_f_percentage) VALUES ('Michel', 0.00491550823, dmetaphone('Michel'), dmetaphone_alt('Michel'), 'm', 100); 

--Common Last Names
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Smith',dmetaphone('Smith'), dmetaphone_alt('Smith'), 0.01321048057);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Brown',dmetaphone('Brown'), dmetaphone_alt('Brown'), 0.007484346222);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Tremblay',dmetaphone('Tremblay'), dmetaphone_alt('Tremblay'), 0.007333709135);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Martin',dmetaphone('Martin'), dmetaphone_alt('Martin'), 0.006303244211);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Roy',dmetaphone('Roy'), dmetaphone_alt('Roy'), 0.006216409597);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Gagnon',dmetaphone('Gagnon'), dmetaphone_alt('Gagnon'), 0.005852226737);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Lee',dmetaphone('Lee'), dmetaphone_alt('Lee'), 0.00573562222);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Wilson',dmetaphone('Wilson'), dmetaphone_alt('Wilson'), 0.005690520472);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Johnson',dmetaphone('Johnson'), dmetaphone_alt('Johnson'), 0.005465286746);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('MacDonald',dmetaphone('MacDonald'), dmetaphone_alt('MacDonald'), 0.005415372312);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Taylor',dmetaphone('Taylor'), dmetaphone_alt('Taylor'), 0.004917534274);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Campbell',dmetaphone('Campbell'), dmetaphone_alt('Campbell'), 0.004886114306);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Anderson',dmetaphone('Anderson'), dmetaphone_alt('Anderson'), 0.004837781184);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Jones',dmetaphone('Jones'), dmetaphone_alt('Jones'), 0.004689619193);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Leblanc',dmetaphone('Leblanc'), dmetaphone_alt('Leblanc'), 0.004670574706);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Cote',dmetaphone('Cote'), dmetaphone_alt('Cote'), 0.004568820763);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Williams',dmetaphone('Williams'), dmetaphone_alt('Williams'), 0.004381538507);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Miller',dmetaphone('Miller'), dmetaphone_alt('Miller'), 0.004340080651);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Thompson',dmetaphone('Thompson'), dmetaphone_alt('Thompson'), 0.004331349063);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Gauthier',dmetaphone('Gauthier'), dmetaphone_alt('Gauthier'), 0.004196181326);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('White',dmetaphone('White'), dmetaphone_alt('White'), 0.003903226226);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Morin',dmetaphone('Morin'), dmetaphone_alt('Morin'), 0.003866718561);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Wong',dmetaphone('Wong'), dmetaphone_alt('Wong'), 0.003792740695);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Young',dmetaphone('Young'), dmetaphone_alt('Young'), 0.003712231326);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Bouchard',dmetaphone('Bouchard'), dmetaphone_alt('Bouchard'), 0.003682461422);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Scott',dmetaphone('Scott'), dmetaphone_alt('Scott'), 0.003515461202);
INSERT INTO common_last_name(last_name, last_name_phonetic, last_name_phonetic_alt, ratio) VALUES ('Stewart',dmetaphone('Stewart'), dmetaphone_alt('Stewart'), 0.003489747706);

任何幫助將非常感激。

謝謝

uj5u.com熱心網友回復:

問題是這樣的:

END;
$$ language sql;

END;在使用plpgsql結合BEGIN到標記塊中的代碼。sql語言函式不使用這種語法,因為它們沒有塊。出現END;這個錯誤結果:

ERROR:  return type mismatch in function declared to return record
DETAIL:  Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING.
CONTEXT:  SQL function "_get_sample_data"

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/350031.html

標籤:PostgreSQL plpgsql

上一篇:將數百萬條“虛擬”記錄加載到postgresql資料庫以模擬PROD資料庫記錄數的最快方法?

下一篇:如何做GROUPBY[空]

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more