Я хочу написать общую хранимую процедуру в oracle. Например, я хочу взять имя таблицы в качестве входных данных, а затем сделать maipulations на нем. Я хочу узнать некоторые примеры общих кодов и основные принципы написания общих хранимых процедур в oracle. Может ли любой фрагмент кода провидеть/ссылки на веб-сайты или другие материалы для этого?общие хранимые процедуры в oracle
ответ
Ну, вам наверняка понадобится инструкция EXECUTE IMMEDIATE
.
EXECUTE IMMEDIATE делает то, что вы хотите.
Generic = динамический SQL, либо «Native Dynamic SQL» (Execute Immediate), либо пакет DBMS_SQL. http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_dynamic_sql.htm#i1006546
Обычно инструкции SQL анализируются при компиляции процедуры, однако это невозможно, если имя таблицы неизвестно - таблица, разумеется, даже не существует во время компиляции.
Здесь приведены ссылки на документацию по этой теме с примерами.
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/dynamic.htm#LNPLS011
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_dynamic_sql.htm#ADFNS008
Слово предостережения - не использовать динамический SQL, если вы можете использовать статический SQL. Гибкость предоставляется по цене.