|
adidas1997-21 1 / 1 / 1 Регистрация: 05.02.2015 Сообщений: 260 |
||||
|
1 |
||||
|
MySQL 21.10.2016, 07:28. Показов 3511. Ответов 2 Метки нет (Все метки)
В чём может быть такая ошибка? И как её исправить?
__________________
0 |
|
qwertehok 4716 / 3924 / 994 Регистрация: 29.08.2013 Сообщений: 25,176 Записей в блоге: 3 |
||||
|
21.10.2016, 09:23 |
2 |
|||
|
запросы которые не возвращают данные — UPDATEDELETE нужно запускать с помощью
и прочее Добавлено через 1 минуту
form1. не надо, особенно если ты на форме1 а если ты на другой, то такое лучше делать отдельной функцией
1 |
|
1 / 1 / 1 Регистрация: 05.02.2015 Сообщений: 260 |
|
|
21.10.2016, 09:47 [ТС] |
3 |
|
а если ты на другой, то такое лучше делать отдельной функцией На другой. У меня на форме расположены все компоненты такие и я со всех форм к одной подключаюсь что бы не было путаницы. Спасибо буду знать
0 |
← →
Raven
(2003-09-11 15:12)
[0]
КАК запустить хранимую процедуру из OraQuery (использую компоненты ODAC).
![]()
![]()
← →
Reindeer Moss Eater
(2003-09-11 15:13)
[1]
TOraStoredProc не разрешают использовать?
begin
имя(параметры);
end;
![]()
![]()
← →
Raven
(2003-09-11 15:15)
[2]
В том то и дело… Мне нужно использовать эту процедуру в FastREport а там нет TOraStoredProc… есть только Oraquery
![]()
![]()
← →
Reindeer Moss Eater
(2003-09-11 15:18)
[3]
Тогда второй вариант
![]()
![]()
← →
Raven
(2003-09-11 15:23)
[4]
Пробовал…=(
Вроде бы запрос выполняет но в конце выдает ошибку
SQL statement doesn`t return rows.
И все
![]()
![]()
← →
Reindeer Moss Eater
(2003-09-11 15:25)
[5]
А так?
begin
имя(параметры);
select null from dual;
end;
![]()
![]()
← →
Raven
(2003-09-11 15:29)
[6]
А теперь обычный select не прокатит…
не будет он там работать…
пробовас с EXECUTE IMMEDIATE таже фигня =(
![]()
![]()
← →
Reindeer Moss Eater
(2003-09-11 15:33)
[7]
Слушай, я что-то не въезжаю откуда в FastReport TOraQuery?
![]()
![]()
← →
Raven
(2003-09-11 15:39)
[8]
Все просто поставил под него Компонент ODAC и все
![]()
![]()
← →
Reindeer Moss Eater
(2003-09-11 15:40)
[9]
У меня и то и другое есть, но все как-то отдельно существует.
Какой ODAC?
![]()
![]()
← →
Vlad
(2003-09-11 15:44)
[10]
А почему ты просто не хочешь «заглушить» Exception ?
Ведь тут очевидно, что это ODAC»овское излишество, проверять вернул Query что-то или нет.
![]()
![]()
← →
Raven
(2003-09-11 15:46)
[11]
FR_ODAC.DPK приятель подкинул добавляетс в FastReport TfrODACQuery и TfrODACDatebase
![]()
![]()
← →
Raven
(2003-09-11 15:51)
[12]
Vlad эТО НЕ ОШИБКА… Просто QUERY сопротивляется и я никак не могу ее победить
![]()
![]()
← →
roottim
(2003-09-11 15:54)
[13]
я так понимаю к этим компонентам можно обртиться из ФР скриптяги…
тогда пробуй так
в SmartQuery.Sql.Text
begin
MYPROCE(:P1, :P2, :RESULT1, :RESULT2);
end;
а вскрипте
q1.ParamByName("P1").AsString := "T";
q1.ParamByName("P2").AsInteger := c;
a := q1.ParamByName("RESULT1").AsInteger;
b := q1.ParamByName("RESULT2").AsString;
а если ф-я то..
SELECT MYFUNC(...) FROM ХЗ[DUAL]
![]()
![]()
← →
roottim
(2003-09-11 15:56)
[14]
блин, слона забыл…
q1.ParamByName("P1").AsString := "T";
q1.ParamByName("P2").AsInteger := c;
q1.ExecSql;
a := q1.ParamByName("RESULT1").AsInteger;
b := q1.ParamByName("RESULT2").AsString;
![]()
![]()
← →
Raven
(2003-09-11 16:05)
[15]
roottim что то я не понял что ты имееш в виду…
У меня есть Хранимая PL/SQL процедура в Oracle… Есть компонента DELPHI FAstREPORT. а там есть TfrODACQuery и TfrODACDatebase….
И я ODACQuery.SQl хочу запустить хранимую процедуру… но нисего не получается си. выше
![]()
![]()
← →
Reindeer Moss Eater
(2003-09-11 16:08)
[16]
TOraQuery.ExecSQL
Ругается что «SQL statement doesn`t return rows» ?
![]()
![]()
← →
Raven
(2003-09-11 16:10)
[17]
УГУ
![]()
![]()
← →
Reindeer Moss Eater
(2003-09-11 16:11)
[18]
Ну и «гаси» этот эксепшен.
![]()
![]()
← →
DT
(2003-09-11 16:13)
[19]
наверное, в процедуре д.б. выходной пар-р типа cursor
![]()
![]()
← →
Vlad
(2003-09-11 16:14)
[20]
Вот и я говорю. Во всех нормальных Query такое возможно.
Один только ODAC решил выпендриться с проверкой возвращаемых строк. ИМХО, надо гасить !
![]()
![]()
← →
slgeo
(2003-09-11 16:15)
[21]
Вы предлагаете исходники компонента переписать?
![]()
![]()
← →
Vlad
(2003-09-11 16:16)
[22]
>slgeo (11.09.03 16:15) [21]
try except для чего изобрели ?
![]()
![]()
← →
roottim
(2003-09-11 16:22)
[23]
я так пологаю на OnPrint некого элемента FR вешается обработчик для получения неких данных через ODAC для их дальнейшего изображения.
пусть у тебя будет
TfrODACQuery c именем .Name := «q1»;
на OnPrint элемениа
begin
q1.SQL.Text := "begin MYPROCE(:P1, :P2, :RESULT1, :RESULT2); end;"
// это твои входные параметы IN
q1.ParamByName("P1").AsString := "T";
q1.ParamByName("P2").AsInteger := 12;
q1.ExecSql;
// это твои выходные данные
a := q1.ParamByName("RESULT1").AsInteger;
b := q1.ParamByName("RESULT2").AsString;
// а дальше незнаю что ты хочеш с ними делать
// например
memo1.Text := b;
end;
так предпологаю я…
а еслиб вы мне их закинули на roottim@electro.tchercom.ru,
я бы сказал точнее :), если не жалко конечно…
хотя эти fr интересно зависят от моих ODAC, или нет…
если независят то какая верси ODAC использовалась для внедрения в FR компоненты
![]()
![]()
← →
Raven
(2003-09-11 16:30)
[24]
BEGIN
MY_PROCEDURE(…)
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
НЕ ПРОКАТЫВАЕТ =(
![]()
![]()
← →
Vlad
(2003-09-11 16:32)
[25]
Чего ты творишь ?
В дельфи на ExecSql обкладывай try except !
![]()
![]()
← →
Raven
(2003-09-11 16:34)
[26]
ROTTIM
ХРАНИМАЯ ПРОЦЕДУРА ПРОИЗВОДИТ СЛОЖНУЮ ОБРАБОТКУ ДАННЫЕ ИЗ РАЗНЫХ ТАБЛИЦ, ЧТО НЕЛЬЗЯ СДЕЛАТЬ SQL ЗАПРОСАМИ, И ЗАПОЛНЯЕТ НЕКОТОРУЮ ВРЕМЕННУЮ ТАБЛИЦУ….
МНЕ НУЖНЫ ДАННЫЕ ИЗ ЭТО ТАБЛИЦЫ ДЛЯ СОСТАВЛЕНИЯ ОТЧЕТА
![]()
![]()
← →
Raven
(2003-09-11 16:37)
[27]
ВЛАД
МНЕ ВЫДАЕТ ПРЕДУПРЕЖДЕНИЕ НЕ DELPHI А ORACLE
![]()
![]()
← →
Reindeer Moss Eater
(2003-09-11 16:38)
[28]
Перед выполнением отчета выполняем sp не средствами FastReport.
В FastReport читаем данные из уже готовой таблицы.
![]()
![]()
← →
Raven
(2003-09-11 16:38)
[29]
ПРОСЬБА ТЕМ КТО НЕ РАБОТАЛ В FASTREPORT НЕ СОВЕТОВАТЬ ТАК КАК НЕ ПОЙМУТ
![]()
![]()
← →
roottim
(2003-09-11 16:39)
[30]
> ХРАНИМАЯ ПРОЦЕДУРА ПРОИЗВОДИТ СЛОЖНУЮ ОБРАБОТКУ ДАННЫЕ ИЗ
> РАЗНЫХ ТАБЛИЦ, ЧТО НЕЛЬЗЯ СДЕЛАТЬ SQL ЗАПРОСАМИ, И ЗАПОЛНЯЕТ
> НЕКОТОРУЮ ВРЕМЕННУЮ ТАБЛИЦУ….
> МНЕ НУЖНЫ ДАННЫЕ ИЗ ЭТО ТАБЛИЦЫ ДЛЯ СОСТАВЛЕНИЯ ОТЧЕТА
вот эти слова должны первые посте стоять… откуда мне то знать чего твоя процедура делает…
ну незнаю на диалоге на батон вешай обработчик
begin
q1.SQL.Text := "begin MYPROCE(:P1, :P2); COMMIT; end;"
// это твои входные параметы IN
q1.ParamByName("P1").AsString := "T";
q1.ParamByName("P2").AsInteger := 12;
q1.ExecSql;
end;
и что ничего не работает ??
![]()
![]()
← →
roottim
(2003-09-11 16:42)
[31]
это не код delphi а скрипт на батоне FR Dialog
![]()
![]()
← →
Raven
(2003-09-11 16:43)
[32]
Reinder
Похоже только так =(
![]()
![]()
← →
slgeo
(2003-09-11 16:44)
[33]
to roottim
такой код в Fast-e не прокатит
![]()
![]()
← →
Vlad
(2003-09-11 16:44)
[34]
Да едрён батон !
>Вроде бы запрос выполняет но в конце выдает ошибку
>SQL statement doesn`t return rows.
Твои слова ? Запрос значит выполняет все таки ? Т.е. хранимка отрабатывает ?
Если да то
try
ExecSql;
except
end;
Кстати, если это Оракл тебе возращает такую ошибку (во что я слабо верю), значит ищи баг в хранимой процедуре ! ИМХО, где-то NO_DATA_FOUND закралось.
![]()
![]()
← →
Raven
(2003-09-11 16:59)
[35]
ХРАНИМАЯ ПРОЦЕДУ РАБОТАЕТ НОРМАЛЬНО ПРОВЕРЯЛ В ЖАБЕ(TOAD)
![]()
![]()
← →
roottim
(2003-09-12 08:28)
[36]
> такой код в Fast-e не прокатит
естестенно такой не покатит, но ведь у меня нет исходников на фрОДАК
я смотрел реализацию фрДОА.
св-ва params, SQL и ExecSQL там зарегистрированы…
а что есть в его компонентах.. хз.. могу толькоп редполагать..
2Raven
либо реализация фрОДАК у вас кривая (помоему она не входит в пак_адд_он, видимо нетестирования самопальная), либо…
![]()
![]()
- Remove From My Forums
-
Question
-
I have execute sql task and i pass in 2 parameters to the sql statement inside execute sql task. Sometimes the sql statement returns rows and sometimes it doesn’t.
when the sql statement returns rows, the rest of the package runs fine. If the sql statement does not return rows, the package fails and the error message is[Execute SQL Task] Error: An error occurred while assigning a value to variable «varPeriod»: «Single Row result set is specified, but no rows were returned.».
what should i do to make sure that even if the sql statement returns nothing, it has to go on?
The execute sql task that i am talking about is inside foreach loop?
Thanks
Answers
-
-
Marked as answer by
Wednesday, November 3, 2010 8:03 PM
-
Marked as answer by
|
|
|
|
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь

Проблема с Odac
, update
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
|
|
OraQuery->SQL=»update alf set k=2 where k=1″ |
|
Sazabis |
|
|
ты делаешь ExecSQL() или Open() ? |
|
Vit |
|
|
Квери всех типов кроме Select выполняются при помощи ExecSQL |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Borland C++ Builder/Turbo C++ Explorer
- Следующая тема
[ Script execution time: 0,0514 ] [ 16 queries used ] [ Generated: 29.01.23, 02:01 GMT ]
Hi Folks,
I am trying to execute a standard ‘select * from x’ statement using PHP 5.4 and the PHP SQL Drivers (5.5 as 64bit) and am getting no rows returned (there should be about 20).
The code is: $result = sql_query($db_handle, $query, null); with $result containing nothing.
$db_handle contains a valid resource id and $query contains «select * from x’.
I have all of the logging enabled (and nothing is being output error wise (LogSubsystems=-1 and LogSeverity=-1) — also have display_errors set and nothing being output.
Running SQL Server profiler I see an audit_login followed by a query (rpc_completed). exec sp_cursoropen @p1 output, N’select * from x’, @p3, output, @p4 output, $p5 output
The following line in the profiler is ‘audit logout’
No data is returned. If I cut and paste the query into SQL server management studio I get 20 rows returned.
I have tried putting some invalid SQL in (select FROM x settings) but no error is given when the query is executed (although I do see it appear in the SQL Server profiler.
Does anyone have an idea on what might be going wrong?
Regards
Andy
Update: I also get in the SQL Profiler
SQL:BatchStarting: Select * from x,
SqlBatchCompleted: Select * from x,
But no rows are returned.
Resolution: Upon logging in to the database server via a remote SQL Management Studio session using the UID/PWD off the PHP sql_connection it was determined that the user did not have read permissions on the database. No error was
being returned. Correct permissions were assigned to the login and all is working.
-
Edited by
Wednesday, July 2, 2014 3:38 AM
Hi, so I am trying to update a table in my db thorugh sql alchmey mixed with pandas. This actually might be the culprit of my issue. I am new to sql alchemy, pandas, and python so I used a template my mentor gave me to add to the code.
Anyways, my script processes csv files. if the file has format error, it will update the status of the file in the table to «error» and move the file to an «error» directory. To this regard I wrote an update table method:
def update_csv_status_db(db_instance, name_of_db_instance_tabledict, csvfile_path, dir_status):
table_dict = db_instance[name_of_db_instance_tabledict]
csvfile_name = csvfile_path.name
sql = update(table_dict['table']).where(table_dict['table'].c.CSV_FILENAME == csvfile_name).values(CSV_STATUS=dir_status)
df = pd.read_sql(sql, table_dict['connection'])
#df.to_sql('odfs_tester_history_files', con=table_dict['engine'], if_exists='append', index=False)
Which is called in this function:
def odf_history_from_csv_to_dbtable(db_instance):
odfsdict = db_instance['odfs_tester_history']
#table_row = {}
totalresult_list = []
dir_dict, dictofpdir_flist = make_dict_of_csvprocessing_dirs()
print(dir_dict)
csvbase_path_list = dictofpdir_flist["csvbase_path_list"]
archivefiles_path_set = dictofpdir_flist["archivefiles_path_set"]
errorfiles_path_set = dictofpdir_flist["errorfiles_path_set"]
emptyfiles_path_set = dictofpdir_flist["emptyfiles_path_set"]
for csv in csvbase_path_list: # is there a faster way to compare the list of files in archive and history?
if csv.name in archivefiles_path_set:
print(csv.name + " is in archive folder already")
elif csv.name in errorfiles_path_set:
print(csv.name + " is in error folder already")
elif csv.name in emptyfiles_path_set:
print(csv.name + " is in empty folder already")
else:
csvhistoryfilelist_to_dbtable(csv, db_instance)
df_tuple = process_csv_formatting(csv)
df_cnum, odfscsv_df = df_tuple
if df_cnum == 1:
trg_path = Path(dir_dict['empty_dir'])
csv.rename(trg_path.joinpath(csv.name))
update_csv_status_db(db_instance, 'odfs_tester_history_files', csv, 'empty')
elif df_cnum == 0 and len(odfscsv_df.index != 0):
result = odfscsv_df.to_sql('odfs_tester_history', con=odfsdict['engine'], if_exists='append', index=False)
totalresult_list.append(result)
trg_path = Path(dir_dict['archive_dir'])
csv.rename(trg_path.joinpath(csv.name))
update_csv_status_db(db_instance, 'odfs_tester_history_files', csv, 'archive')
return totalresult_list
So a very weird error happens after this runs. Testing it with one file that contains bad formating, an «error» file. it actually processes the file, moves it to the error directory and updates the table. However at the end, the program breaks and returns the following error:
Traceback (most recent call last):
File "C:ProgramDataAnaconda3libsite-packagessqlalchemyengineresult.py", line 1161, in _fetchall_impl
return self.cursor.fetchall()
AttributeError: 'NoneType' object has no attribute 'fetchall'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/sys_nsgprobeingestio/Documents/dozie/odfs/odfshistory3.py", line 269, in <module>
odf_history_from_csv_to_dbtable(db_instance)
File "C:/Users/sys_nsgprobeingestio/Documents/dozie/odfs/odfshistory3.py", line 244, in odf_history_from_csv_to_dbtable
update_csv_status_db(db_instance, 'odfs_tester_history_files', csv, 'error')
File "C:/Users/sys_nsgprobeingestio/Documents/dozie/odfs/odfshistory3.py", line 178, in update_csv_status_db
df = pd.read_sql(sql, table_dict['connection'])
File "C:ProgramDataAnaconda3libsite-packagespandasiosql.py", line 438, in read_sql
chunksize=chunksize,
File "C:ProgramDataAnaconda3libsite-packagespandasiosql.py", line 1231, in read_query
data = result.fetchall()
File "C:ProgramDataAnaconda3libsite-packagessqlalchemyengineresult.py", line 1216, in fetchall
e, None, None, self.cursor, self.context
File "C:ProgramDataAnaconda3libsite-packagessqlalchemyenginebase.py", line 1478, in _handle_dbapi_exception
util.reraise(*exc_info)
File "C:ProgramDataAnaconda3libsite-packagessqlalchemyutilcompat.py", line 153, in reraise
raise value
File "C:ProgramDataAnaconda3libsite-packagessqlalchemyengineresult.py", line 1211, in fetchall
l = self.process_rows(self._fetchall_impl())
File "C:ProgramDataAnaconda3libsite-packagessqlalchemyengineresult.py", line 1163, in _fetchall_impl
return self._non_result([])
File "C:ProgramDataAnaconda3libsite-packagessqlalchemyengineresult.py", line 1168, in _non_result
"This result object does not return rows. "
sqlalchemy.exc.ResourceClosedError: This result object does not return rows. It has been closed automatically.
I have noticed when I have multiple files, it will process some of them, the rest it will leave once it hits this error. And it is spontaneous on when it hits the error. How can I fix this?
Is there a way to update thet able without needing to use pandas _readsql? COuld this be the issue? The fact that I am using pandas _tosql. And if so, what alternative can i use to commit the update?
█ 15.06.2010 11:16
Не могу разобраться с функцией decode
Мне нужно получить ближайший нечетный понедельник (не четная дата) после определенной даты + 7 дней
█ 15.06.2010 12:41
Если по частям, то просто следующий понедельник
my_date2 := my_date+8-TO_NUMBER(TO_CHAR(my_date, ‘D’))
Как определить, что эта дата четная и прибавить неделю — думаю понимаешь. Но в один запрос это городить неудобно.
Что такое decode — описаний же полно.
decode(параметр,
значение_параметра_1, вернуть_что_то_№1,
значение_параметра_2, вернуть_что_то_№2,
значение_параметра_3, вернуть_что_то_№3,
и т.д.,
иначе_вернуть_что_то_№xx)
█ 15.06.2010 14:23
Родил следующее
Код:
SELECT MIN(DTT) AS DT FROM(
SELECT DTT FROM(
select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date('13.06.2010')+7 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date('13.06.2010')+8 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date('13.06.2010')+9 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date('13.06.2010')+10 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date('13.06.2010')+11 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date('13.06.2010')+12 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date('13.06.2010')+13 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date('13.06.2010')+14 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date('13.06.2010')+15 dt from dual)
) WHERE mod(TO_NUMBER(SUBSTR(DTT,0,2)),2)<>0)
Не очень красиво, но работает 🙂
█ 15.06.2010 15:30
какой-то ужас 🙂
попробуй так (считал от текущего, меняй sysdate на что тебе надо), особо не тестировал, проверь:
Цитата:
with monday as (select sysdate+15-TO_NUMBER(TO_CHAR(sysdate, ‘D’)) «mon» from dual)
select decode(mod(TO_NUMBER(TO_CHAR(«mon», ‘DD’)),2),0,»mon»+7,»mon»)from monday
█ 15.06.2010 16:13
Цитата:
John Doe ➤ какой-то ужас 🙂
попробуй так (считал от текущего, меняй sysdate на что тебе надо), особо не тестировал, проверь:
Никак не могу победить, не работает 🙁
█ 15.06.2010 16:15
Пробовал свой код добавить тоже не работает в триггере 🙁
Код:
CREATE OR REPLACE TRIGGER SUPERMAG.LMMATRIXCHANGE
BEFORE DELETE OR INSERT
ON SUPERMAG.SMASSORTMATRIX
FOR EACH ROW
DECLARE
dayForZak int;
DDATE date;
daten char(10);
BEGIN
SELECT TO_NUMBER(VALUE) into dayForZak FROM SUPERMAG.LMCONFIG WHERE PARM='day_for_vvod';
SELECT TO_CHAR(SYSDATE, 'DD.MM.YYYY') into daten FROM dual;
SELECT TO_DATE(MIN(DTT)) into DDATE FROM(
SELECT DTT FROM(
select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date(daten)+7 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date(daten)+8 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date(daten)+9 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date(daten)+10 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date(daten)+11 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date(daten)+12 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date(daten)+13 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date(daten)+14 dt from dual)
UNION select decode(to_char(dt,'d'),1, dt) AS DTT from (select to_date(daten)+15 dt from dual)
) WHERE mod(TO_NUMBER(SUBSTR(DTT,0,2)),2)<>0);
--Core.FailMsg('Äàòà'||DDATE);
if inserting or updating then
INSERT INTO LMMATRIXACTIONS(ARTICLE,ACTIONDATE,OWNER,ACTION,MATRIXID,LOCATION,ZAKDATE)
VALUES (:New.ARTICLE,SYSDATE,USER,'insert',:New.IDMATRIX,(SELECT STORELOC FROM SMASSORTMATRIXLOC WHERE IDMATRIX=:New.IDMATRIX),DDATE);
else
INSERT INTO LMMATRIXACTIONS(ARTICLE,ACTIONDATE,OWNER,ACTION,MATRIXID,LOCATION) VALUES
(:Old.ARTICLE,SYSDATE,USER,'delete',:Old.IDMATRIX,(SELECT STORELOC FROM SMASSORTMATRIXLOC WHERE IDMATRIX=:Old.IDMATRIX));
end if;
END LMMATRIXCHANGE;
/
█ 15.06.2010 16:40
Пробежал, не увидел слова autonomous transaction — бросил смотреть…
В культурном обществе обычно слово «не работает» расшифровывают.
█ 15.06.2010 17:01
Цитата:
PavelGS ➤ Мне нужно получить ближайший нечетный понедельник (не четная дата) после определенной даты + 7 дней
Код:
WITH datelist AS
(SELECT TO_DATE ('01012010', 'DDMMYYYY') fromdate, TO_DATE ('31122010', 'DDMMYYYY') todate
FROM DUAL)
SELECT DAY
FROM (SELECT fromdate + LEVEL - 1 DAY
FROM datelist
CONNECT BY LEVEL <= todate - fromdate + 1)
WHERE TO_CHAR (DAY, 'D') = 1 AND TO_NUMBER (TO_CHAR (DAY, 'DD')) / 2 != TRUNC (TO_NUMBER (TO_CHAR (DAY, 'DD')) / 2) AND ROWNUM = 1
█ 15.06.2010 17:24
Запускаю как есть ругается
Код:
Error at line 1 SQL statement doesn't return rows
█ 15.06.2010 17:46
Цитата:
PavelGS ➤ Запускаю как есть ругается
Где?
Код:
SQL*Plus: Release 10.2.0.4.0 - Production on Вт Июн 15 17:44:01 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Присоединен к:
Oracle9i Release 9.2.0.8.0 - Production
JServer Release 9.2.0.8.0 - Production
SQL> WITH datelist AS
2 (SELECT TO_DATE ('01012010', 'DDMMYYYY') fromdate, TO_DATE ('31122010', 'DDMMYYYY') todate
3 FROM DUAL)
4 SELECT DAY
5 FROM (SELECT fromdate + LEVEL - 1 DAY
6 FROM datelist
7 CONNECT BY LEVEL <= todate - fromdate + 1)
8 WHERE TO_CHAR (DAY, 'D') = 1 AND TO_NUMBER (TO_CHAR (DAY, 'DD')) / 2 != TRUNC (TO_NUMBER (TO_CHAR (DAY, 'DD')) / 2) AND ROWNUM = 1;
DAY
--------
11.01.10
SQL>
Часовой пояс GMT +3, время: 05:01.
Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.
