powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sql собеседование
25 сообщений из 32, страница 1 из 2
sql собеседование
    #39278104
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем привет.
Коллеги, я начинающий разработчик и при решении задачи возникли сложности, прошу помочь если можете.
Есть 4 таблицы test1,test2,load,errore.Данные есть только для таблицы test1.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create table test1(code varchar(5), name varchar2(10),ch_date date);--
create table test2(id number(5),code varchar(5), name varchar2(5),ch_date date,load_id number(5));--
create table log (id number(5),start_date date,end_date date,num_rows number(5),num_err number(5),num_rows_ins number(5));--num_rows количесво строк, num_err кол-во  ошибок при ставке, num_rows_ins-количество вставлено 
create table error (load_id number(5),code varchar(5),err varchar2(20));

insert into test1 values('001','NM1','01.07.2016');
insert into test1 values('002','NM2','01.07.2016');
insert into test1 values('003','NM3','01.07.2016');
insert into test1 values('001','NM11','05.07.2016');
insert into test1 values('006','ABCDEFG','06.07.2016');


Нужно написать процедуру которая загружает все данные в таблицу test2:к примеру поле name ABCDEFG не совпадает по количеству символов и должно загрузиться в таблицу error.
...
Рейтинг: 0 / 0
sql собеседование
    #39278109
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пример:
в таблицу test2 добавится 4 записи, к примеру:80,003,NM3,01.06,12
в таблице лог log будт только одна запись: 12, 5--записей всего, 1--одна ошибка, 4--вставлено в таблицу.
в таблице errore:12,005,ошибка не совпадает количество символов
...
Рейтинг: 0 / 0
sql собеседование
    #39278123
я помогу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
начинать надо так:
Код: plsql
1.
create or replace procedure



откуда загружает?
сколько денег предлагали на собеседовании?
...
Рейтинг: 0 / 0
sql собеседование
    #39278130
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я помогу,из таблицы test1. Не предлагали) Я не работал с этими понятиями пока, так как я начинающий разработчик
...
Рейтинг: 0 / 0
sql собеседование
    #39278131
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max_1923,

решил сэкономить на чтении книг, иди на курсы, где тебе их прочитает преподаватель.
...
Рейтинг: 0 / 0
sql собеседование
    #39278138
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
declare
v_err VARCHAR2(64);

begin
for cur_cas in (select * from test1)
loop
insert into test2 values(my_seq.nextval,cur_cas.code,cur_cas.name,cur_cas.ch_date,my_seq.currval);
end loop;

exception when others then
errm := sqlerrm;
when others then
insert into err$log (my_seq.currval,cur_cas.code,'err');

end;
...
Рейтинг: 0 / 0
sql собеседование
    #39278140
max_1923я помогу,из таблицы test1. Не предлагали) Я не работал с этими понятиями пока, так как я начинающий разработчик
и я тебе напишу процедуру.

а вообще вот тут для таких как ты всё написано
...
Рейтинг: 0 / 0
sql собеседование
    #39278142
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к\возникли сложности при вставки ошибки в таблицу, про что лучше прочитать чтоб разобраться как вставлять ошибку в таблицу?
...
Рейтинг: 0 / 0
sql собеседование
    #39278145
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я хочу разобраться и сделать это задание, но мне нужна помощь
...
Рейтинг: 0 / 0
sql собеседование
    #39278150
max_1923
exception when others then
...
when others then
...
...
Рейтинг: 0 / 0
sql собеседование
    #39278151
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почитай про эксепшены,
по ошибке лишнее ставил
...
Рейтинг: 0 / 0
sql собеседование
    #39278153
max_1923create table test2(id number(5),code varchar(5), name varchar2(5),ch_date date,load_id number(5));
...
insert into test2 values(my_seq.nextval,cur_cas.code,cur_cas.name,cur_cas.ch_date,my_seq.currval);
...
Рейтинг: 0 / 0
sql собеседование
    #39278155
ларри э.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
читай доку по pl/sql
...
Рейтинг: 0 / 0
sql собеседование
    #39278159
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тогда кто-нибудь объясните пожалуйста. вот вставляю я данные из таблицы test 1 в test2, id- поле будет уникальный id, через сиквенс сделаю, а вот поле load_id это id процедуры, как тогда этот id получить?
...
Рейтинг: 0 / 0
sql собеседование
    #39278163
телепат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
max_1923 load_id это id процедуры, как тогда этот id получить?
наверное из v$session?
...
Рейтинг: 0 / 0
sql собеседование
    #39278167
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
телепат,а есть еще какие-нибудь варианты? или можно только так?к примеру доспутим нету такой таблицы
...
Рейтинг: 0 / 0
sql собеседование
    #39278178
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max_1923есть еще какие-нибудь варианты?сколько не спрашивай букв, осмысленные предложения на языке писать не научишься, пока не изучишь всю азбуку, словарь (хотя бы общеупотребительную часть), грамматику.
...
Рейтинг: 0 / 0
sql собеседование
    #39278180
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,ну в спешке написал) только не нужно цепляться за слова
...
Рейтинг: 0 / 0
sql собеседование
    #39278181
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделал так select sys_context('userenv','sessionid') Session_ID into load_id from dual;
...
Рейтинг: 0 / 0
sql собеседование
    #39278199
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все-таки данный результат возвращает id сессии, а хотелось бы получить id при каждом запуске процедуры
...
Рейтинг: 0 / 0
sql собеседование
    #39278210
Michael Isaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max_1923,

EXECUTE DBMS_ERRLOG.CREATE_ERROR_LOG('TEST2', 'TEST2_ERR');

INSERT INTO TEST2 (id, code, name, ch_date, load_id)
SELECT test2_seq.nextval, code, name, ch_date, :l_load_id FROM TEST1
LOG ERRORS INTO TEST2_ERR ('daily_load') REJECT LIMIT UNLIMITED;
...
Рейтинг: 0 / 0
sql собеседование
    #39278288
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в таком таком условия обрабатывается только одна ошибка
when OTHERS
then err_msg := substr(sqlerrm, 1, 200);
insert into err$load values (load_id,l_code,err_msg);

как сделать, к примеру если при загрузки данных в таблицу несколько ошибок, то чтоб в этом условии добавлялись сразу все ошибки? а не одна
...
Рейтинг: 0 / 0
sql собеседование
    #39278289
max_1923
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Michael Isaev,а как он генерирует id процедуры ?
...
Рейтинг: 0 / 0
sql собеседование
    #39278344
Valergrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдруг пригодится тебе

https://oracle-base.com/articles/10g/dml-error-logging-10gr2
...
Рейтинг: 0 / 0
sql собеседование
    #39278352
max_1923телепат,а есть еще какие-нибудь варианты? или можно только так?к примеру доспутим нету такой таблицы
есть
или так можно
и без примера такой таблицы нет и никогда не было
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sql собеседование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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