Существует функция iOS, называемая BackgroundFetch
, которую вы можете настроить для
, регулярно загружает и обрабатывает небольшие объемы контента из сети
blockquote>Вы можете настроить
minimumBackgroundFetchInterval
.В отличие от упомянутой функции Android этот интервал не гарантируется.
ОС выполняет некоторую эвристику в черном ящике. Он вознаграждает вас за использование «разумного» (для ОС) времени процессора / энергопотребления, а также для частого использования пользователем. С другой стороны, вы получаете наказание за дренирование батареи, что еще хуже, если ваше приложение никогда не использовалось.
Смотрите: Документация по Apple
В качестве альтернативы, в зависимости от ваших потребностей, вы можете публиковать
Silent (push) Notification
всякий раз, когда данные пользователя изменяются на стороне сервера ,Смотрите: Документация по Apple
Модель безопасности Oracle такова, что при выполнении динамического SQL с использованием Execute Immediate (внутри контекста блока или процедуры PL / SQL) пользователь не имеет прав на объекты или команды, которые предоставляются через членство в ролях. У вашего пользователя, вероятно, есть роль «DBA» или что-то подобное. Вы должны явно предоставить разрешения «drop table» для этого пользователя. То же самое было бы применимо, если бы вы пытались выбрать из таблиц в другой схеме (например, sys или system) - вам нужно предоставить явным привилегии SELECT для этой таблицы этому пользователю.
В качестве альтернативы вы можете предоставить привилегию пользователя DROP_ANY_TABLE
, если это необходимо, и процедура будет выполняться, так как это не требует каких-либо изменений. Опасно, может быть, но зависит от того, что вы делаете:)
вы можете использовать «AUTHID CURRENT_USER» в теле определения вашей процедуры для своих требований.
Вы должны использовать этот пример с AUTHID CURRENT_USER :
CREATE OR REPLACE PROCEDURE Create_sequence_for_tab (VAR_TAB_NAME IN VARCHAR2)
AUTHID CURRENT_USER
IS
SEQ_NAME VARCHAR2 (100);
FINAL_QUERY VARCHAR2 (100);
COUNT_NUMBER NUMBER := 0;
cur_id NUMBER;
BEGIN
SEQ_NAME := 'SEQ_' || VAR_TAB_NAME;
SELECT COUNT (*)
INTO COUNT_NUMBER
FROM USER_SEQUENCES
WHERE SEQUENCE_NAME = SEQ_NAME;
DBMS_OUTPUT.PUT_LINE (SEQ_NAME || '>' || COUNT_NUMBER);
IF COUNT_NUMBER = 0
THEN
--DBMS_OUTPUT.PUT_LINE('DROP SEQUENCE ' || SEQ_NAME);
-- EXECUTE IMMEDIATE 'DROP SEQUENCE ' || SEQ_NAME;
-- ELSE
SELECT 'CREATE SEQUENCE COMPTABILITE.' || SEQ_NAME || ' START WITH ' || ROUND (DBMS_RANDOM.VALUE (100000000000, 999999999999), 0) || ' INCREMENT BY 1'
INTO FINAL_QUERY
FROM DUAL;
DBMS_OUTPUT.PUT_LINE (FINAL_QUERY);
cur_id := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.parse (cur_id, FINAL_QUERY, DBMS_SQL.v7);
DBMS_SQL.CLOSE_CURSOR (cur_id);
-- EXECUTE IMMEDIATE FINAL_QUERY;
END IF;
COMMIT;
END;
/
EXECUTE IMMEDIATE('GRANT drop table ON ' || schema_name || '.' || tblToDrop || ' TO ben');
, но я получаю недопустимую ошибку привилегий для этой строки. Я посмотрел онлайн, чтобы назначить привилегию для удаления таблицы, но я не могу найти ничего. Я попробовал все и «drop table & quot; но я получаю ту же ошибку. Вы знаете, где я могу найти правильное имя или что я здесь делаю неправильно? Еще раз, спасибо. – tundal45 15 June 2009 в 17:15