Как исключить ошибку пустого запроса в ORACLE?
Простейший способ - сделать этот запрос курсором и там уже проверять наличие или отсутствие строк.
Простейший способ, таки, обработать ошибку no_data_found.
Ориентировочный скрипт такойAS 
  INSERTED VARCHAR(200);
  ID_ NUMBER;
BEGIN
...
BEGIN
SELECT ID_MATERIAL INTO INSERTED FROM SOURCE WHERE SHORTNAME_MATERIAL=SHORT_NAME;
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL ; (или INSERTED := NULL)
END;
...
IF INSERTED IS NULL THEN
...
ELSE
...
END IF ;
...
END <PROCEDURE_NAME> ;
А вообще, по приведенному примеру можно сказать, что над оформлением кода (стандартом оформления) надо работать. Имена переменных и таблиц такими делать не принято. Используют преффиксы VAR_, V_, GV_, LV_ для переменных и преффиксы TBL_, T_ или суффикс _TBL для таблиц. Вместо VARCHAR должен быть VARCHAR2. Обязательно указывать тип размерности для строковых - BYTE or CHAR. Алиасы для таблиц являются хорошим тоном даже в таких простых запросах. Невозможно понять условие SHORTNAME_MATERIAL=SHORT_NAME - это сравнение полей картежа, двух скалярных внутренних или внешних переменных, или констант, или сравнение поля с переменной/константой.