powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Чем заменить Оракловскую SQL%ROWCOUNT ?
13 сообщений из 13, страница 1 из 1
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34331959
alosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
if (SQL%ROWCOUNT = 0) then
insert into UNIQUE_ID_VALUE(ID_VALUE)
values (pID_VALUE)
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34331981
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, почитать основы в доке или банально воспользоваться поиском по форуму - религия не позволяет?
ROW_COUNT , если что
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34332032
alosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE OR REPLACE FUNCTION tmp1(pid int)
RETURNS int AS '
DECLARE
myint int;
BEGIN
GET DIAGNOSTICS myint = ROW_COUNT;
RETURN;
END;'
LANGUAGE 'plpgsql';

Не пойму как ее использовать? Как она привязывется к таблице?
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34332058
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aloshaif (SQL%ROWCOUNT = 0) then
insert into UNIQUE_ID_VALUE(ID_VALUE)
values (pID_VALUE)Для начала поясните что такое "Оракловское SQL%ROWCOUNT" и что должен делать приведенный код.
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34332064
alosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serik Akhmetov aloshaif (SQL%ROWCOUNT = 0) then
insert into UNIQUE_ID_VALUE(ID_VALUE)
values (pID_VALUE)Для начала поясните что такое "Оракловское SQL%ROWCOUNT" и что должен делать приведенный код.


считает количесвто записей в таблице, если их ноль, то вставляет записи с помощью:
into insert into UNIQUE_ID_VALUE(ID_VALUE)
values (pID_VALUE)

Вот мне и нужно в Постгресе посчитать количество строк в таблице. Как это сделать?
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34332126
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
select count(*) from ...
в PostgreSQL не очень шустрый, поэтому я бы сделал так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE OR REPLACE FUNCTION test_f()
  RETURNS text AS
$BODY$declare
    ret text;
    rec record;
begin
    ret:=  0 ;
 
    select * into rec from mytable limit  1 ;
    if found then
        ret := 'YES';
    else
        ret := 'NO';
    end if;

    return ret;
end;$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34332340
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alosha Serik Akhmetov aloshaif (SQL%ROWCOUNT = 0) then
insert into UNIQUE_ID_VALUE(ID_VALUE)
values (pID_VALUE)Для начала поясните что такое "Оракловское SQL%ROWCOUNT" и что должен делать приведенный код.


считает количесвто записей в таблице, если их ноль, то вставляет записи с помощью:
into insert into UNIQUE_ID_VALUE(ID_VALUE)
values (pID_VALUE)

Вот мне и нужно в Постгресе посчитать количество строк в таблице. Как это сделать?

sql%rowcount возвращает кол-во affected записей предыдущим запросом, но не "считает количесвто записей в таблице"
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34332672
alosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
st_serg alosha Serik Akhmetov aloshaif (SQL%ROWCOUNT = 0) then
insert into UNIQUE_ID_VALUE(ID_VALUE)
values (pID_VALUE)Для начала поясните что такое "Оракловское SQL%ROWCOUNT" и что должен делать приведенный код.


считает количесвто записей в таблице, если их ноль, то вставляет записи с помощью:
into insert into UNIQUE_ID_VALUE(ID_VALUE)
values (pID_VALUE)

Вот мне и нужно в Постгресе посчитать количество строк в таблице. Как это сделать?

sql%rowcount возвращает кол-во affected записей предыдущим запросом, но не "считает количесвто записей в таблице"


как написать это все в PostgreSQL?
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34332852
alosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
st_serg alosha Serik Akhmetov aloshaif (SQL%ROWCOUNT = 0) then
insert into UNIQUE_ID_VALUE(ID_VALUE)
values (pID_VALUE)Для начала поясните что такое "Оракловское SQL%ROWCOUNT" и что должен делать приведенный код.


считает количесвто записей в таблице, если их ноль, то вставляет записи с помощью:
into insert into UNIQUE_ID_VALUE(ID_VALUE)
values (pID_VALUE)

Вот мне и нужно в Постгресе посчитать количество строк в таблице. Как это сделать?

sql%rowcount возвращает кол-во affected записей предыдущим запросом, но не "считает количесвто записей в таблице"

Как это написать в PostgreSQL? Есть ли возможность?
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34332883
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aloshaКак это написать в PostgreSQL? Есть ли возможность?Ты хоть по ссылке-то, приведенной мной, ходил? Хоть пару-тройку топиков по ней прочитал?
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34332903
alosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бабичев Сергей aloshaКак это написать в PostgreSQL? Есть ли возможность?Ты хоть по ссылке-то, приведенной мной, ходил? Хоть пару-тройку топиков по ней прочитал?

CREATE OR REPLACE FUNCTION tmp1(pid int)
RETURNS int AS '
DECLARE
myint int;
BEGIN
GET DIAGNOSTICS myint = ROW_COUNT;
RETURN;
END;'
LANGUAGE 'plpgsql';

Не пойму как ее использовать? Как она привязывется к таблице?
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34333576
alosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бабичев Сергей aloshaКак это написать в PostgreSQL? Есть ли возможность?Ты хоть по ссылке-то, приведенной мной, ходил? Хоть пару-тройку топиков по ней прочитал?

А что не работает?

CREATE OR REPLACE FUNCTION tmp11(pvalue int)
RETURNS int AS '
DECLARE
numrows int;
BEGIN
select id, name, salary
from employee
where value = pvalue;
GET DIAGNOSTICS numrows := ROW_COUNT;
RETURN numrows;
END;'
LANGUAGE 'plpgsql';
...
Рейтинг: 0 / 0
Чем заменить Оракловскую SQL%ROWCOUNT ?
    #34333705
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
postgres=# select count( 1 ) from t1;
 count
-------
      4 
( 1  запись)

postgres=# select count( 1 ) from t2;
 count
-------
      2 
( 1  запись)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create or replace function f1() returns void
as $$
declare
   i int;
begin
   select f from t1;
   GET DIAGNOSTICS i = ROW_COUNT;
   raise notice 't1: rows affected %', i;
   update t2 set f = f;
   GET DIAGNOSTICS i = ROW_COUNT;
   raise notice 't2: rows affected %', i;
end;
$$ language plpgsql

Код: plaintext
1.
2.
3.
4.
postgres=# select f1();
ERROR:  query has no destination for result data
ПОДСКАЗКА:  If you want to discard the results of a SELECT, use PERFORM instead.
КОНТЕКСТ:  PL/pgSQL function "f1" line  4  at SQL statement

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create or replace function f1() returns void
as $$
declare
   i int;
begin
   perform f from t1;
   GET DIAGNOSTICS i = ROW_COUNT;
   raise notice 't1: rows affected %', i;
   update t2 set f = f;
   GET DIAGNOSTICS i = ROW_COUNT;
   raise notice 't2: rows affected %', i;
end;
$$ language plpgsql

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
postgres=# select f1();
NOTICE:  t1: rows affected  4 
NOTICE:  t2: rows affected  2 
 f1
----

( 1  запись)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create or replace function f1() returns void
as $$
declare
   i int;
begin
   select f into i from t1;
   GET DIAGNOSTICS i = ROW_COUNT;
   raise notice 't1: rows affected %', i;
   update t2 set f = f;
   GET DIAGNOSTICS i = ROW_COUNT;
   raise notice 't2: rows affected %', i;
end;
$$ language plpgsql

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
postgres=# select f1();
NOTICE:  t1: rows affected  1 
NOTICE:  t2: rows affected  2 
 f1
----

( 1  запись)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create or replace function f1() returns void
as $$
declare
   i int;
begin
   select f into strict i from t1;
   GET DIAGNOSTICS i = ROW_COUNT;
   raise notice 't1: rows affected %', i;
   update t2 set f = f;
   GET DIAGNOSTICS i = ROW_COUNT;
   raise notice 't2: rows affected %', i;
end;
$$ language plpgsql

Код: plaintext
1.
2.
3.
postgres=# select f1();
ERROR:  query returned more than one row
КОНТЕКСТ:  PL/pgSQL function "f1" line  4  at SQL statement

вроде бы все работает
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Чем заменить Оракловскую SQL%ROWCOUNT ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]