我使用Laravel与postgres和我有这个错误:
SQLSTATE[42883]:未定义的函数: 7错误:函数paymentrun(整数,日期,双精度,文本)不存在LINE 1: SELECT paymentRun(^提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。(SQL: SELECT paymentRun(:buyer_id::整数,:payment_date::DATE,:paid_amount::double精度,: pay详情::文本);)
我有这个功能的地方:编辑::功能要大得多,但我认为它不需要显示
CREATE FUNCTION "paymentRun"(buyer_id integer, payment_date DATE, paid_amount double precision, payDetails text) RETURNS VOID AS
$$
DECLARE
row_STab "SearchTable"%rowtype;
curProd "KeysForSale"%rowtype;
totalPrice double precision;
returnedPID integer;
BEGIN
我这样称呼这个函数:
DB::select("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
DB::select('BEGIN TRANSACTION;');
$sendToSQL = '';
for($i = 0; $i<session('cart_number'); $i++)
$sendToSQL .= '(' . $cart_array[$i] . '),';
$sendToSQL = rtrim($sendToSQL,",");
$sendToSQL .= ';';
DB::select('INSERT INTO "SearchTable"(product_id) VALUES' . $sendToSQL);
//DB::select(DB::raw('SELECT paymentRun'))->where(Auth::id(), date('Y/m/d'),'PayPal', 10000, 'qualquer');
DB::select('SELECT paymentRun(
:buyer_id::integer,
:payment_date::DATE,
:paid_amount::double precision,
:paydetails::text);',
['buyer_id' => Auth::id(),
'payment_date' => date('Y/m/d'),
'paid_amount' => 10000,
'paydetails' =>'qualquer'
]);
//DB::select('DELETE FROM "SearchTable";');
DB::select('COMMIT;');
我做错了什么?我一直试了几次,但没有一次取得了像样的结果。
谢谢
您创建的函数的名称包含双引号和不同的大小写。
CREATE FUNCTION "paymentRun" ...
如果这样做,则在随后处理对象时,大小写很重要。所以你需要改变
DB::select('SELECT paymentRun(
到
DB::select('SELECT "paymentRun"(
以便正确处理函数。
因此,im在将数据库从Oracle迁移到PGSql项目中,现在im修复了一些查询.我有一个这样的错误: 并且我在这个字符串生成器上发现了来自控制台的nvl错误
我使用DBEaver在PostgreSQL中创建了一个存储过程。我正试图通过从DBeaver调用过程将数据插入到表中。但这给了我一个错误 SQL错误[42883]:错误:函数public.proc_insert_test(integer,unknown,unknown,unknown,unknown,unknown,timestamp with time zone,integer,integer,
这里是上面代码的错误-> 没有与给定的名称和参数类型匹配的函数。您可能需要添加显式类型转换。
我在PostgreSQL中有一个存储过程,如下所示: 我的数据库中有带精度值的类型。对于numeric,我只需要使用。这条路对吗?
代码中的以下语句给了我一个错误: 是Postgres中的用户定义聚合函数,定义为: 错误消息为:
但这段代码有一个错误: 错误:函数log(数值,双精度)不存在行1:select log(2.7,c) 提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。 查询:select log(2.7,c)context:pl/pgsql function inline_code_block line 11 at SQL语句SQL state:42883