From bf15913551e7acaa8c03b72186a87ddb6aba4bca Mon Sep 17 00:00:00 2001 From: Josh Heyer Date: Wed, 3 Aug 2022 17:14:39 +0000 Subject: [PATCH 01/77] fork EPAS 14 for v15 --- .../epas/{14 => 15}/deployment_options/index.mdx | 0 .../epas/{14 => 15}/ecpgplus_guide/02_overview.mdx | 0 .../ecpgplus_guide/03_using_embedded_sql.mdx | 0 .../ecpgplus_guide/04_using_descriptors.mdx | 0 ...05_building_executing_dynamic_sql_statements.mdx | 0 .../{14 => 15}/ecpgplus_guide/06_error_handling.mdx | 0 .../epas/{14 => 15}/ecpgplus_guide/07_reference.mdx | 0 .../{14 => 15}/ecpgplus_guide/images/ecpg_path.png | 0 .../{14 => 15}/ecpgplus_guide/images/edb_logo.png | 0 .../{14 => 15}/ecpgplus_guide/images/edb_logo.svg | 0 .../docs/epas/{14 => 15}/ecpgplus_guide/index.mdx | 0 .../{14 => 15}/edb_pgadmin_linux_qs/images/E.ico | 0 .../edb_pgadmin_linux_qs/images/EDB_logo.png | 0 .../images/connect_to_epas_server.png | 0 .../edb_pgadmin_linux_qs/images/edb_logo.svg | 0 .../images/edb_pgadmin4_first_look.png | 0 .../images/pgadmin4_from_applications_menu.png | 0 .../edb_pgadmin_linux_qs/images/server_general.png | 0 .../epas/{14 => 15}/edb_pgadmin_linux_qs/index.mdx | 0 .../02_packages/01_package_components.mdx | 0 .../02_packages/02_creating_packages.mdx | 0 .../02_packages/03_referencing_a_package.mdx | 0 .../04_using_packages_with_user_defined_types.mdx | 0 .../02_packages/05_dropping_a_package.mdx | 0 .../epas_compat_bip_guide/02_packages/index.mdx | 0 .../03_built-in_packages/01_dbms_alert.mdx | 0 .../03_built-in_packages/02_dbms_aq/01_enqueue.mdx | 0 .../03_built-in_packages/02_dbms_aq/02_dequeue.mdx | 0 .../03_built-in_packages/02_dbms_aq/03_register.mdx | 0 .../02_dbms_aq/04_unregister.mdx | 0 .../03_built-in_packages/02_dbms_aq/index.mdx | 0 .../03_dbms_aqadm/01_alter_queue.mdx | 0 .../03_dbms_aqadm/02_alter_queue_table.mdx | 0 .../03_dbms_aqadm/03_create_queue.mdx | 0 .../03_dbms_aqadm/04_create_queue_table.mdx | 0 .../03_dbms_aqadm/05_drop_queue.mdx | 0 .../03_dbms_aqadm/06_drop_queue_table.mdx | 0 .../03_dbms_aqadm/07_purge_queue_table.mdx | 0 .../03_dbms_aqadm/08_start_queue.mdx | 0 .../03_dbms_aqadm/09_stop_queue.mdx | 0 .../03_built-in_packages/03_dbms_aqadm/index.mdx | 0 .../04_dbms_crypto/01_decrypt.mdx | 0 .../04_dbms_crypto/02_encrypt.mdx | 0 .../03_built-in_packages/04_dbms_crypto/03_hash.mdx | 0 .../03_built-in_packages/04_dbms_crypto/04_mac.mdx | 0 .../04_dbms_crypto/05_randombytes.mdx | 0 .../04_dbms_crypto/06_randominteger.mdx | 0 .../04_dbms_crypto/07_randomnumber.mdx | 0 .../03_built-in_packages/04_dbms_crypto/index.mdx | 0 .../03_built-in_packages/05_dbms_job/01_broken.mdx | 0 .../03_built-in_packages/05_dbms_job/02_change.mdx | 0 .../05_dbms_job/03_interval.mdx | 0 .../05_dbms_job/04_next_date.mdx | 0 .../03_built-in_packages/05_dbms_job/05_remove.mdx | 0 .../03_built-in_packages/05_dbms_job/06_run.mdx | 0 .../03_built-in_packages/05_dbms_job/07_submit.mdx | 0 .../03_built-in_packages/05_dbms_job/08_what.mdx | 0 .../03_built-in_packages/05_dbms_job/index.mdx | 0 .../03_built-in_packages/06_dbms_lob/01_append.mdx | 0 .../03_built-in_packages/06_dbms_lob/02_compare.mdx | 0 .../06_dbms_lob/03_converttoblob.mdx | 0 .../06_dbms_lob/04_converttoclob.mdx | 0 .../03_built-in_packages/06_dbms_lob/05_copy.mdx | 0 .../03_built-in_packages/06_dbms_lob/06_erase.mdx | 0 .../06_dbms_lob/07_get_storage_limit.mdx | 0 .../06_dbms_lob/08_getlength.mdx | 0 .../03_built-in_packages/06_dbms_lob/09_instr.mdx | 0 .../03_built-in_packages/06_dbms_lob/10_read.mdx | 0 .../03_built-in_packages/06_dbms_lob/11_substr.mdx | 0 .../03_built-in_packages/06_dbms_lob/12_trim.mdx | 0 .../03_built-in_packages/06_dbms_lob/13_write.mdx | 0 .../06_dbms_lob/14_writeappend.mdx | 0 .../03_built-in_packages/06_dbms_lob/index.mdx | 0 .../03_built-in_packages/07_dbms_lock.mdx | 0 .../08_dbms_mview/01_get_mv_dependencies.mdx | 0 .../08_dbms_mview/02_refresh.mdx | 0 .../08_dbms_mview/03_refresh_all_mviews.mdx | 0 .../08_dbms_mview/04_refresh_dependent.mdx | 0 .../03_built-in_packages/08_dbms_mview/index.mdx | 0 .../03_built-in_packages/09_dbms_output.mdx | 0 .../10_dbms_pipe/01_create_pipe.mdx | 0 .../10_dbms_pipe/02_next_item_pipe.mdx | 0 .../10_dbms_pipe/03_pack_message.mdx | 0 .../03_built-in_packages/10_dbms_pipe/04_purge.mdx | 0 .../10_dbms_pipe/05_receive_message.mdx | 0 .../10_dbms_pipe/06_remove_pipe.mdx | 0 .../10_dbms_pipe/07_reset_buffer.mdx | 0 .../10_dbms_pipe/08_send_message.mdx | 0 .../10_dbms_pipe/09_unique_session_name.mdx | 0 .../10_dbms_pipe/10_unpack_message.mdx | 0 .../10_dbms_pipe/11_comprehensive_example.mdx | 0 .../03_built-in_packages/10_dbms_pipe/index.mdx | 0 .../03_built-in_packages/11_dbms_profiler.mdx | 0 .../03_built-in_packages/12_dbms_random.mdx | 0 .../03_built-in_packages/13_dbms_redact.mdx | 0 .../03_built-in_packages/14_dbms_rls.mdx | 0 ...endar_syntax_to_specify_a_repeating_interval.mdx | 0 .../15_dbms_scheduler/02_create_job.mdx | 0 .../15_dbms_scheduler/03_create_program.mdx | 0 .../15_dbms_scheduler/04_create_schedule.mdx | 0 .../05_define_program_argument.mdx | 0 .../15_dbms_scheduler/06_dbms_scheduler_disable.mdx | 0 .../15_dbms_scheduler/07_drop_job.mdx | 0 .../15_dbms_scheduler/08_drop_program.mdx | 0 .../15_dbms_scheduler/09_drop_program_argument.mdx | 0 .../15_dbms_scheduler/10_drop_schedule.mdx | 0 .../15_dbms_scheduler/11_dbms_scheduler_enable.mdx | 0 .../12_evaluate_calendar_string.mdx | 0 .../15_dbms_scheduler/13_run_job.mdx | 0 .../15_dbms_scheduler/14_set_job_argument_value.mdx | 0 .../15_dbms_scheduler/index.mdx | 0 .../03_built-in_packages/16_dbms_session.mdx | 0 .../17_dbms_sql/01_bind_variable.mdx | 0 .../17_dbms_sql/02_bind_variable_char.mdx | 0 .../17_dbms_sql/03_bind_variable_raw.mdx | 0 .../17_dbms_sql/04_close_cursor.mdx | 0 .../17_dbms_sql/05_column_value.mdx | 0 .../17_dbms_sql/06_column_value_char.mdx | 0 .../17_dbms_sql/07_column_value_raw.mdx | 0 .../17_dbms_sql/08_define_column.mdx | 0 .../17_dbms_sql/09_define_column_char.mdx | 0 .../17_dbms_sql/10_define_column_raw.mdx | 0 .../17_dbms_sql/11_describe_columns.mdx | 0 .../03_built-in_packages/17_dbms_sql/12_execute.mdx | 0 .../17_dbms_sql/13_execute_and_fetch.mdx | 0 .../17_dbms_sql/14_fetch_rows.mdx | 0 .../03_built-in_packages/17_dbms_sql/15_is_open.mdx | 0 .../17_dbms_sql/16_last_row_count.mdx | 0 .../17_dbms_sql/17_open_cursor.mdx | 0 .../03_built-in_packages/17_dbms_sql/18_parse.mdx | 0 .../03_built-in_packages/17_dbms_sql/index.mdx | 0 .../03_built-in_packages/18_dbms_utility.mdx | 0 .../19_utl_encode/01_base64_decode.mdx | 0 .../19_utl_encode/02_base64_encode.mdx | 0 .../19_utl_encode/03_mimeheader_decode.mdx | 0 .../19_utl_encode/04_mimeheader_encode.mdx | 0 .../19_utl_encode/05_quoted_printable_decode.mdx | 0 .../19_utl_encode/06_quoted_printable_encode.mdx | 0 .../19_utl_encode/07_text_decode.mdx | 0 .../19_utl_encode/08_text_encode.mdx | 0 .../19_utl_encode/09_uudecode.mdx | 0 .../19_utl_encode/10_uuencode.mdx | 0 .../03_built-in_packages/19_utl_encode/index.mdx | 0 .../03_built-in_packages/20_utl_file.mdx | 0 .../03_built-in_packages/21_utl_http.mdx | 0 .../03_built-in_packages/22_utl_mail.mdx | 0 .../03_built-in_packages/23_utl_raw.mdx | 0 .../03_built-in_packages/24_utl_smtp.mdx | 0 .../03_built-in_packages/25_utl_url.mdx | 0 .../03_built-in_packages/index.mdx | 0 .../epas_compat_bip_guide/images/EDB_logo.png | 0 .../epas_compat_bip_guide/images/edb_logo.svg | 0 .../epas_compat_bip_guide/images/edblogo.png | 0 .../epas_compat_bip_guide/images/image2.png | 0 .../epas_compat_bip_guide/images/media/image2.png | 0 .../epas/{14 => 15}/epas_compat_bip_guide/index.mdx | 0 .../epas_compat_cat_views/images/edb_logo.png | 0 .../epas_compat_cat_views/images/edb_logo.svg | 0 .../epas/{14 => 15}/epas_compat_cat_views/index.mdx | 0 .../oracle_compatible_views/02_all_all_tables.mdx | 0 .../oracle_compatible_views/03_all_cons_columns.mdx | 0 .../oracle_compatible_views/04_all_constraints.mdx | 0 .../oracle_compatible_views/05_all_col_privs.mdx | 0 .../oracle_compatible_views/06_all_db_links.mdx | 0 .../oracle_compatible_views/07_all_dependencies.mdx | 0 .../oracle_compatible_views/08_all_directories.mdx | 0 .../oracle_compatible_views/09_all_ind_columns.mdx | 0 .../oracle_compatible_views/10_all_indexes.mdx | 0 .../oracle_compatible_views/11_all_jobs.mdx | 0 .../oracle_compatible_views/12_all_objects.mdx | 0 .../13_all_part_key_columns.mdx | 0 .../oracle_compatible_views/14_all_part_tables.mdx | 0 .../oracle_compatible_views/15_all_policies.mdx | 0 .../oracle_compatible_views/16_all_queues.mdx | 0 .../oracle_compatible_views/17_all_queue_tables.mdx | 0 .../oracle_compatible_views/18_all_sequences.mdx | 0 .../oracle_compatible_views/19_all_source.mdx | 0 .../20_all_subpart_key_columns.mdx | 0 .../oracle_compatible_views/21_all_synonyms.mdx | 0 .../oracle_compatible_views/22_all_tab_columns.mdx | 0 .../23_all_tab_partitions.mdx | 0 .../24_all_tab_subpartitions.mdx | 0 .../oracle_compatible_views/25_all_tab_privs.mdx | 0 .../oracle_compatible_views/26_all_tables.mdx | 0 .../oracle_compatible_views/27_all_triggers.mdx | 0 .../oracle_compatible_views/28_all_types.mdx | 0 .../oracle_compatible_views/29_all_users.mdx | 0 .../oracle_compatible_views/30_all_view_columns.mdx | 0 .../oracle_compatible_views/31_all_views.mdx | 0 .../oracle_compatible_views/32_dba_all_tables.mdx | 0 .../oracle_compatible_views/33_dba_cons_columns.mdx | 0 .../oracle_compatible_views/34_dba_constraints.mdx | 0 .../oracle_compatible_views/35_dba_col_privs.mdx | 0 .../oracle_compatible_views/36_dba_db_links.mdx | 0 .../oracle_compatible_views/37_dba_directories.mdx | 0 .../oracle_compatible_views/38_dba_dependencies.mdx | 0 .../oracle_compatible_views/39_dba_ind_columns.mdx | 0 .../oracle_compatible_views/40_dba_indexes.mdx | 0 .../oracle_compatible_views/41_dba_jobs.mdx | 0 .../oracle_compatible_views/42_dba_objects.mdx | 0 .../43_dba_part_key_columns.mdx | 0 .../oracle_compatible_views/44_dba_part_tables.mdx | 0 .../oracle_compatible_views/45_dba_policies.mdx | 0 .../oracle_compatible_views/46_dba_profiles.mdx | 0 .../oracle_compatible_views/47_dba_queues.mdx | 0 .../oracle_compatible_views/48_dba_queue_tables.mdx | 0 .../oracle_compatible_views/49_dba_role_privs.mdx | 0 .../oracle_compatible_views/50_dba_roles.mdx | 0 .../oracle_compatible_views/51_dba_sequences.mdx | 0 .../oracle_compatible_views/52_dba_source.mdx | 0 .../53_dba_subpart_key_columns.mdx | 0 .../oracle_compatible_views/54_dba_synonyms.mdx | 0 .../oracle_compatible_views/55_dba_tab_columns.mdx | 0 .../56_dba_tab_partitions.mdx | 0 .../57_dba_tab_subpartitions.mdx | 0 .../oracle_compatible_views/58_dba_tab_privs.mdx | 0 .../oracle_compatible_views/59_dba_tables.mdx | 0 .../oracle_compatible_views/60_dba_triggers.mdx | 0 .../oracle_compatible_views/61_dba_types.mdx | 0 .../oracle_compatible_views/62_dba_users.mdx | 0 .../oracle_compatible_views/63_dba_view_columns.mdx | 0 .../oracle_compatible_views/64_dba_views.mdx | 0 .../oracle_compatible_views/65_user_all_tables.mdx | 0 .../66_user_cons_columns.mdx | 0 .../oracle_compatible_views/67_user_constraints.mdx | 0 .../oracle_compatible_views/68_user_col_privs.mdx | 0 .../oracle_compatible_views/69_user_db_links.mdx | 0 .../70_user_dependencies.mdx | 0 .../oracle_compatible_views/71_user_indexes.mdx | 0 .../oracle_compatible_views/72_user_jobs.mdx | 0 .../oracle_compatible_views/73_user_objects.mdx | 0 .../oracle_compatible_views/74_user_part_tables.mdx | 0 .../oracle_compatible_views/75_user_policies.mdx | 0 .../oracle_compatible_views/76_user_queues.mdx | 0 .../77_user_queue_tables.mdx | 0 .../oracle_compatible_views/78_user_role_privs.mdx | 0 .../oracle_compatible_views/79_user_sequences.mdx | 0 .../oracle_compatible_views/80_user_source.mdx | 0 .../81_user_subpart_key_columns.mdx | 0 .../oracle_compatible_views/82_user_synonyms.mdx | 0 .../oracle_compatible_views/83_user_tab_columns.mdx | 0 .../84_user_tab_partitions.mdx | 0 .../85_user_tab_subpartitions.mdx | 0 .../oracle_compatible_views/86_user_tab_privs.mdx | 0 .../oracle_compatible_views/87_user_tables.mdx | 0 .../oracle_compatible_views/88_user_triggers.mdx | 0 .../oracle_compatible_views/89_user_types.mdx | 0 .../oracle_compatible_views/90_user_users.mdx | 0 .../91_user_view_columns.mdx | 0 .../oracle_compatible_views/92_user_views.mdx | 0 .../oracle_compatible_views/93_v_version.mdx | 0 .../94_product_component_version.mdx | 0 .../oracle_compatible_views/index.mdx | 0 .../epas_compat_cat_views/pg_views/index.mdx | 0 .../epas_compat_cat_views/pg_views/pg_user.mdx | 0 .../01_introduction/01_edb_redwood_date.mdx | 0 .../01_introduction/02_edb_redwood_raw_names.mdx | 0 .../01_introduction/03_edb_redwood_strings.mdx | 0 .../01_introduction/04_edb_stmt_level_tx.mdx | 0 .../01_introduction/05_oracle_home.mdx | 0 .../01_introduction/index.mdx | 0 .../02_about_the_examples_used_in_this_guide.mdx | 0 .../01_sample_database_installation.mdx | 0 .../02_sample_database_description.mdx | 0 .../02_sql_tutorial/01_sample_database/index.mdx | 0 .../02_sql_tutorial/02_creating_a_new_table.mdx | 0 .../03_populating_a_table_with_rows.mdx | 0 .../02_sql_tutorial/04_querying_a_table.mdx | 0 .../02_sql_tutorial/05_joins_between_tables.mdx | 0 .../02_sql_tutorial/06_aggregate_functions.mdx | 0 .../02_sql_tutorial/07_updates.mdx | 0 .../02_sql_tutorial/08_deletions.mdx | 0 .../02_sql_tutorial/09_the_sql_language.mdx | 0 .../02_sql_tutorial/index.mdx | 0 .../03_advanced_concepts/01_views.mdx | 0 .../03_advanced_concepts/02_foreign_keys.mdx | 0 .../03_the_rownum_pseudo_column.mdx | 0 .../03_advanced_concepts/04_synonyms.mdx | 0 .../01_defining_the_parent_child_relationship.mdx | 0 .../02_selecting_the_root_nodes.mdx | 0 ..._organization_tree_in_the_sample_application.mdx | 0 .../05_hierarchical_queries/04_node_level.mdx | 0 .../05_ordering_the_siblings.mdx | 0 ...etrieving_the_root_node_with_connect_by_root.mdx | 0 ...7_retrieving_a_path_with_sys_connect_by_path.mdx | 0 .../05_hierarchical_queries/index.mdx | 0 .../01_rollup_extension.mdx | 0 .../02_cube_extension.mdx | 0 .../03_grouping_sets_extension.mdx | 0 .../04_grouping_function.mdx | 0 .../05_grouping_id_function.mdx | 0 .../06_multidimensional_analysis/index.mdx | 0 .../03_advanced_concepts/index.mdx | 0 .../01_creating_a_password_function.mdx | 0 .../01_creating_a_new_profile/index.mdx | 0 .../04_profile_management/02_altering_a_profile.mdx | 0 .../04_profile_management/03_dropping_a_profile.mdx | 0 ..._associating_a_profile_with_an_existing_role.mdx | 0 .../05_unlocking_a_locked_account.mdx | 0 ...reating_a_new_role_associated_with_a_profile.mdx | 0 .../07_backing_up_profile_management_functions.mdx | 0 .../04_profile_management/index.mdx | 0 .../01_default_optimization_modes.mdx | 0 .../05_optimizer_hints/02_access_method_hints.mdx | 0 .../03_specifying_a_join_order.mdx | 0 .../04_joining_relations_hints.mdx | 0 .../05_optimizer_hints/05_global_hints.mdx | 0 .../06_using_the_append_optimizer_hint.mdx | 0 .../05_optimizer_hints/07_parallelism_hints.mdx | 0 .../05_optimizer_hints/08_conflicting_hints.mdx | 0 .../05_optimizer_hints/index.mdx | 0 .../01_dblink_ora_connect.mdx | 0 .../02_dblink_ora_status.mdx | 0 .../03_dblink_ora_disconnect.mdx | 0 .../04_dblink_ora_record.mdx | 0 .../05_dblink_ora_call.mdx | 0 .../06_dblink_ora_exec.mdx | 0 .../07_dblink_ora_copy.mdx | 0 .../index.mdx | 0 .../02_calling_dblink_ora_functions.mdx | 0 .../06_dblink_ora/index.mdx | 0 .../07_open_client_library.mdx | 0 .../08_oracle_catalog_views.mdx | 0 .../09_tools_and_utilities.mdx | 0 .../epas_compat_ora_dev_guide/10_ecpgplus.mdx | 0 .../11_system_catalog_tables.mdx | 0 .../images/definer's_rights_package.png | 0 .../images/definers_rights_package.png | 0 .../epas_compat_ora_dev_guide/images/edb_logo.png | 0 .../epas_compat_ora_dev_guide/images/edb_logo.svg | 0 .../images/edb_postgres.png | 0 .../images/employee_organization_hierarchy.png | 0 .../images/invokers_rights_programs.png | 0 .../images/open_client_library.png | 0 .../images/sample_database_tables.png | 0 .../{14 => 15}/epas_compat_ora_dev_guide/index.mdx | 0 .../01_sql_syntax/01_lexical_structure.mdx | 0 .../01_sql_syntax/02_identifiers_and_key_words.mdx | 0 .../01_sql_syntax/03_constants.mdx | 0 .../01_sql_syntax/04_comments.mdx | 0 .../02_the_sql_language/01_sql_syntax/index.mdx | 0 .../02_data_types/01_numeric_types.mdx | 0 .../02_data_types/02_character_types.mdx | 0 .../02_data_types/03_binary_data.mdx | 0 .../02_data_types/04_date_time_types.mdx | 0 .../02_data_types/05_boolean_type.mdx | 0 .../02_data_types/06_xml_type.mdx | 0 .../02_the_sql_language/02_data_types/index.mdx | 0 .../01_logical_operators.mdx | 0 .../02_comparison_operators.mdx | 0 .../03_mathematical_functions_and_operators.mdx | 0 .../04_string_functions_and_operators.mdx | 0 .../05_pattern_matching_string_functions.mdx | 0 .../06_pattern_matching_using_the_like_operator.mdx | 0 .../07_data_type_formatting_functions.mdx | 0 .../08_date_time_functions_and_operators.mdx | 0 .../09_sequence_manipulation_functions.mdx | 0 .../10_conditional_expressions.mdx | 0 .../11_aggregate_functions.mdx | 0 .../12_subquery_expressions.mdx | 0 .../13_identifier_functions.mdx | 0 .../14_bitwise_functions.mdx | 0 .../03_functions_and_operators/index.mdx | 0 .../02_the_sql_language/index.mdx | 0 .../03_system_catalog_tables.mdx | 0 .../epas_compat_reference/images/edb_logo.png | 0 .../epas_compat_reference/images/edb_logo.svg | 0 .../epas/{14 => 15}/epas_compat_reference/index.mdx | 0 .../01_basic_spl_elements/02_case_sensitivity.mdx | 0 .../01_basic_spl_elements/03_identifiers.mdx | 0 .../01_basic_spl_elements/04_qualifiers.mdx | 0 .../01_basic_spl_elements/05_constants.mdx | 0 .../06_user_defined_pl_sql_subtypes.mdx | 0 .../01_basic_spl_elements/07_character.mdx | 0 .../epas_compat_spl/01_basic_spl_elements/index.mdx | 0 .../02_spl_programs/02_spl_block_structure.mdx | 0 .../02_spl_programs/03_anonymous_blocks.mdx | 0 .../01_creating_a_procedure.mdx | 0 .../02_calling_a_procedure.mdx | 0 .../03_deleting_a_procedure.mdx | 0 .../04_procedures_overview/index.mdx | 0 .../01_creating_a_function.mdx | 0 .../05_functions_overview/02_calling_a_function.mdx | 0 .../03_deleting_a_function.mdx | 0 .../02_spl_programs/05_functions_overview/index.mdx | 0 .../01_positional_vs_named_parameter_notation.mdx | 0 .../02_parameter_modes.mdx | 0 .../03_using_default_values_in_parameters.mdx | 0 .../06_procedure_and_function_parameters/index.mdx | 0 .../01_creating_a_subprocedure.mdx | 0 .../02_creating_a_subfunction.mdx | 0 .../03_block_relationships.mdx | 0 .../04_invoking_subprograms.mdx | 0 .../05_using_forward_declarations.mdx | 0 .../06_overloading_subprograms.mdx | 0 .../07_accessing_subprogram_variables.mdx | 0 .../index.mdx | 0 ...mpilation_errors_in_procedures_and_functions.mdx | 0 .../09_program_security/01_execute_privilege.mdx | 0 .../02_database_object_name_resolution.mdx | 0 .../03_database_object_privileges.mdx | 0 .../04_definers_vs_invokers_rights.mdx | 0 .../09_program_security/05_security_example.mdx | 0 .../02_spl_programs/09_program_security/index.mdx | 0 .../epas_compat_spl/02_spl_programs/index.mdx | 0 .../01_declaring_a_variable.mdx | 0 .../02_using__type_in_variable_declarations.mdx | 0 .../03_using__row_type_in_record_declarations.mdx | 0 ...er_defined_record_types_and_record_variables.mdx | 0 .../03_variable_declarations/index.mdx | 0 .../04_basic_statements/01_assignment.mdx | 0 .../04_basic_statements/02_delete.mdx | 0 .../04_basic_statements/03_insert.mdx | 0 .../epas_compat_spl/04_basic_statements/04_null.mdx | 0 .../05_using_the_returning_into_clause.mdx | 0 .../04_basic_statements/06_select_into.mdx | 0 .../04_basic_statements/07_update.mdx | 0 .../08_obtaining_the_result_status.mdx | 0 .../epas_compat_spl/04_basic_statements/index.mdx | 0 .../01_if_statement/01_if_then.mdx | 0 .../01_if_statement/02_if_then_else.mdx | 0 .../01_if_statement/03_if_then_else_if.mdx | 0 .../01_if_statement/04_if_then_elseif_else.mdx | 0 .../05_control_structures/01_if_statement/index.mdx | 0 .../05_control_structures/02_return_statement.mdx | 0 .../05_control_structures/03_goto_statement.mdx | 0 .../01_selector_case_expression.mdx | 0 .../02_searched_case_expression.mdx | 0 .../04_case_expression/index.mdx | 0 .../01_selector_case_statement.mdx | 0 .../02_searched_case_statement.mdx | 0 .../05_case_statement/index.mdx | 0 .../05_control_structures/06_loops/01_loop.mdx | 0 .../05_control_structures/06_loops/02_exit.mdx | 0 .../05_control_structures/06_loops/03_continue.mdx | 0 .../05_control_structures/06_loops/04_while.mdx | 0 .../06_loops/05_for_integer_variant.mdx | 0 .../05_control_structures/06_loops/index.mdx | 0 .../05_control_structures/07_exception_handling.mdx | 0 .../08_user_defined_exceptions.mdx | 0 .../09_pragma_exception_init.mdx | 0 .../10_raise_application_error.mdx | 0 .../epas_compat_spl/05_control_structures/index.mdx | 0 .../06_transaction_control/01_commit.mdx | 0 .../06_transaction_control/02_rollback.mdx | 0 .../03_pragma_autonomous_transaction.mdx | 0 .../06_transaction_control/index.mdx | 0 .../{14 => 15}/epas_compat_spl/07_dynamic_sql.mdx | 0 .../08_static_cursors/01_declaring_a_cursor.mdx | 0 .../08_static_cursors/02_opening_a_cursor.mdx | 0 .../03_fetching_rows_from_a_cursor.mdx | 0 .../08_static_cursors/04_closing_a_cursor.mdx | 0 .../05_using__rowtype_with_cursors.mdx | 0 .../06_cursor_attributes/01_isopen.mdx | 0 .../06_cursor_attributes/02_found.mdx | 0 .../06_cursor_attributes/03_notfound.mdx | 0 .../06_cursor_attributes/04_rowcount.mdx | 0 .../05_summary_of_cursor_states_and_attributes.mdx | 0 .../06_cursor_attributes/index.mdx | 0 .../08_static_cursors/07_cursor_for_loop.mdx | 0 .../08_static_cursors/08_parameterized_cursors.mdx | 0 .../epas_compat_spl/08_static_cursors/index.mdx | 0 .../01_ref_cursor_overview.mdx | 0 ...01_declaring_a_sys_refcursor_cursor_variable.mdx | 0 ...ring_a_user_defined_ref_cursor_type_variable.mdx | 0 .../02_declaring_a_cursor_variable/index.mdx | 0 .../03_opening_a_cursor_variable.mdx | 0 .../04_fetching_rows_from_a_cursor_variable.mdx | 0 .../05_closing_a_cursor_variable.mdx | 0 .../06_usage_restrictions.mdx | 0 .../01_returning_a_ref_cursor_from_a_function.mdx | 0 .../02_modularizing_cursor_operations.mdx | 0 .../07_examples/index.mdx | 0 .../08_dynamic_queries_with_ref_cursors.mdx | 0 .../09_ref_cursors_and_cursor_variables/index.mdx | 0 .../10_collections/01_associative_arrays.mdx | 0 .../10_collections/02_nested_tables.mdx | 0 .../epas_compat_spl/10_collections/03_varrays.mdx | 0 .../epas_compat_spl/10_collections/index.mdx | 0 .../11_collection_methods/01_count.mdx | 0 .../11_collection_methods/02_deletes.mdx | 0 .../11_collection_methods/03_exists.mdx | 0 .../11_collection_methods/04_extend.mdx | 0 .../11_collection_methods/05_first.mdx | 0 .../11_collection_methods/06_last.mdx | 0 .../11_collection_methods/07_limit.mdx | 0 .../11_collection_methods/08_next.mdx | 0 .../11_collection_methods/09_prior.mdx | 0 .../11_collection_methods/10_trim.mdx | 0 .../epas_compat_spl/11_collection_methods/index.mdx | 0 .../12_working_with_collections/01_table.mdx | 0 .../02_using_the_multiset_union_operator.mdx | 0 .../03_using_the_forall_statement.mdx | 0 .../01_select_bulk_collect.mdx | 0 .../02_fetch_bulk_collect.mdx | 0 .../03_execute_immediate_bulk_collect.mdx | 0 .../04_returning_bulk_collect.mdx | 0 .../04_using_the_bulk_collect_clause/index.mdx | 0 .../05_errors_and_messages.mdx | 0 .../12_working_with_collections/index.mdx | 0 .../epas_compat_spl/13_triggers/01_overview.mdx | 0 .../13_triggers/02_types_of_triggers.mdx | 0 .../13_triggers/03_creating_triggers.mdx | 0 .../13_triggers/04_trigger_variables.mdx | 0 .../13_triggers/05_transactions_and_exceptions.mdx | 0 .../13_triggers/06_compound_triggers.mdx | 0 .../01_before_statement_level_trigger.mdx | 0 .../02_after_statement_level_trigger.mdx | 0 .../03_before_row_level_trigger.mdx | 0 .../04_after_row_level_trigger.mdx | 0 .../07_trigger_examples/05_instead_of_trigger.mdx | 0 .../07_trigger_examples/06_compound_trigger.mdx | 0 .../13_triggers/07_trigger_examples/index.mdx | 0 .../epas_compat_spl/13_triggers/index.mdx | 0 .../epas/{14 => 15}/epas_compat_spl/14_packages.mdx | 0 .../01_basic_object_concepts/01_attributes.mdx | 0 .../01_basic_object_concepts/02_methods.mdx | 0 .../03_overloading_methods.mdx | 0 .../01_basic_object_concepts/index.mdx | 0 .../01_object_type_specification_syntax.mdx | 0 .../02_object_type_body_syntax.mdx | 0 .../02_object_type_components/index.mdx | 0 .../03_creating_object_types/01_member_methods.mdx | 0 .../03_creating_object_types/02_static_methods.mdx | 0 .../03_constructor_methods.mdx | 0 .../03_creating_object_types/index.mdx | 0 .../04_creating_object_instances.mdx | 0 .../05_referencing_an_object.mdx | 0 .../06_dropping_an_object_type.mdx | 0 .../15_object_types_and_objects/index.mdx | 0 .../images/definer's_rights_package.png | 0 .../images/definers_rights_package.png | 0 .../{14 => 15}/epas_compat_spl/images/edb_logo.png | 0 .../{14 => 15}/epas_compat_spl/images/edb_logo.svg | 0 .../images/employee_organization_hierarchy.png | 0 .../images/invokers_rights_programs.png | 0 .../epas_compat_spl/images/open_client_library.png | 0 .../images/sample_database_tables.png | 0 .../docs/epas/{14 => 15}/epas_compat_spl/index.mdx | 0 .../epas_compat_sql/02_alter_directory.mdx | 0 .../{14 => 15}/epas_compat_sql/03_alter_index.mdx | 0 .../epas_compat_sql/04_alter_procedure.mdx | 0 .../{14 => 15}/epas_compat_sql/05_alter_profile.mdx | 0 .../{14 => 15}/epas_compat_sql/06_alter_queue.mdx | 0 .../epas_compat_sql/07_alter_queue_table.mdx | 0 .../epas_compat_sql/08_alter_role_identified_by.mdx | 0 ...naging_database_link_and_dbms_rls_privileges.mdx | 0 .../epas_compat_sql/10_alter_sequence.mdx | 0 .../{14 => 15}/epas_compat_sql/11_alter_session.mdx | 0 .../epas_compat_sql/11a_alter_synonym.mdx | 0 .../{14 => 15}/epas_compat_sql/12_alter_table.mdx | 0 .../{14 => 15}/epas_compat_sql/13_alter_trigger.mdx | 0 .../epas_compat_sql/14_alter_tablespace.mdx | 0 .../epas_compat_sql/15_alter_user_identified_by.mdx | 0 ...6_alter_user_role_profile_management_clauses.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/17_call.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/18_comment.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/19_commit.mdx | 0 .../epas_compat_sql/20_create_database.mdx | 0 .../21_create_public_database_link.mdx | 0 .../epas_compat_sql/22_create_directory.mdx | 0 .../epas_compat_sql/23_create_function.mdx | 0 .../{14 => 15}/epas_compat_sql/24_create_index.mdx | 0 .../epas_compat_sql/25_create_materialized_view.mdx | 0 .../epas_compat_sql/26_create_package.mdx | 0 .../epas_compat_sql/27_create_package_body.mdx | 0 .../epas_compat_sql/28_create_procedure.mdx | 0 .../epas_compat_sql/29_create_profile.mdx | 0 .../{14 => 15}/epas_compat_sql/30_create_queue.mdx | 0 .../epas_compat_sql/31_create_queue_table.mdx | 0 .../{14 => 15}/epas_compat_sql/32_create_role.mdx | 0 .../{14 => 15}/epas_compat_sql/33_create_schema.mdx | 0 .../epas_compat_sql/34_create_sequence.mdx | 0 .../epas_compat_sql/35_create_synonym.mdx | 0 .../{14 => 15}/epas_compat_sql/36_create_table.mdx | 0 .../epas_compat_sql/37_create_table_as.mdx | 0 .../epas_compat_sql/38_create_trigger.mdx | 0 .../{14 => 15}/epas_compat_sql/39_create_type.mdx | 0 .../epas_compat_sql/40_create_type_body.mdx | 0 .../{14 => 15}/epas_compat_sql/41_create_user.mdx | 0 ..._create_user_role_profile_management_clauses.mdx | 0 .../{14 => 15}/epas_compat_sql/43_create_view.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/44_delete.mdx | 0 .../45_drop_public_database_link.mdx | 0 .../epas_compat_sql/46_drop_directory.mdx | 0 .../{14 => 15}/epas_compat_sql/47_drop_function.mdx | 0 .../{14 => 15}/epas_compat_sql/48_drop_index.mdx | 0 .../{14 => 15}/epas_compat_sql/49_drop_package.mdx | 0 .../epas_compat_sql/50_drop_procedure.mdx | 0 .../{14 => 15}/epas_compat_sql/51_drop_profile.mdx | 0 .../{14 => 15}/epas_compat_sql/52_drop_queue.mdx | 0 .../epas_compat_sql/53_drop_queue_table.mdx | 0 .../{14 => 15}/epas_compat_sql/54_drop_synonym.mdx | 0 .../{14 => 15}/epas_compat_sql/55_drop_role.mdx | 0 .../{14 => 15}/epas_compat_sql/56_drop_sequence.mdx | 0 .../{14 => 15}/epas_compat_sql/57_drop_table.mdx | 0 .../epas_compat_sql/58_drop_tablespace.mdx | 0 .../{14 => 15}/epas_compat_sql/59_drop_trigger.mdx | 0 .../{14 => 15}/epas_compat_sql/60_drop_type.mdx | 0 .../{14 => 15}/epas_compat_sql/61_drop_user.mdx | 0 .../{14 => 15}/epas_compat_sql/62_drop_view.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/63_exec.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/64_grant.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/65_insert.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/66_lock.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/67_revoke.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/68_rollback.mdx | 0 .../epas_compat_sql/69_rollback_to_savepoint.mdx | 0 .../{14 => 15}/epas_compat_sql/70_savepoint.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/71_select.mdx | 0 .../epas_compat_sql/72_set_constraints.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/73_set_role.mdx | 0 .../epas_compat_sql/74_set_transaction.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/75_truncate.mdx | 0 .../epas/{14 => 15}/epas_compat_sql/76_update.mdx | 0 .../{14 => 15}/epas_compat_sql/images/edb_logo.png | 0 .../{14 => 15}/epas_compat_sql/images/edb_logo.svg | 0 .../docs/epas/{14 => 15}/epas_compat_sql/index.mdx | 0 .../01_interval_range_partitioning.mdx | 0 .../02_automatic_list_partitioning.mdx | 0 .../02_selecting_a_partition_type/index.mdx | 0 .../01_example_partition_pruning.mdx | 0 .../03_using_partition_pruning/index.mdx | 0 .../01_example_partition_by_list.mdx | 0 .../02_example_automatic_list_partition.mdx | 0 .../03_example_partition_by_range.mdx | 0 .../04_example_interval_range_partition.mdx | 0 .../05_example_partition_by_hash.mdx | 0 .../06_example_partitions_number.mdx | 0 ...mple_partition_by_range_subpartition_by_list.mdx | 0 .../08_example_creating_unique_index.mdx | 0 .../09_example_subpartition_template.mdx | 0 .../01_create_table_partition_by/index.mdx | 0 ...ding_a_partition_to_a_list_partitioned_table.mdx | 0 ...ing_a_partition_to_a_range_partitioned_table.mdx | 0 ...adding_a_partition_with_subpartitions_number.mdx | 0 .../02_alter_table_add_partition/index.mdx | 0 ...bpartition_to_a_list_range_partitioned_table.mdx | 0 ...bpartition_to_a_range_list_partitioned_table.mdx | 0 .../03_alter_table_add_subpartition/index.mdx | 0 .../01_example_splitting_a_list_partition.mdx | 0 .../02_example_splitting_a_range_partition.mdx | 0 .../03_example_splitting_a_range_list_partition.mdx | 0 .../04_alter_table_split_partition/index.mdx | 0 .../01_example_splitting_a_list_subpartition.mdx | 0 .../02_example_splitting_a_range_subpartition.mdx | 0 .../05_alter_table_split_subpartition/index.mdx | 0 ...1_example_exchanging_a_table_for_a_partition.mdx | 0 .../06_alter_table_exchange_partition/index.mdx | 0 ...moving_a_partition_to_a_different_tablespace.mdx | 0 .../07_alter_table_move_partition/index.mdx | 0 .../01_example_renaming_a_partition.mdx | 0 .../08_alter_table_rename_partition/index.mdx | 0 ..._example_setting_an_interval_range_partition.mdx | 0 .../09_alter_table_set_interval/index.mdx | 0 ..._example_setting_an_automatic_list_partition.mdx | 0 .../index.mdx | 0 .../01_example_setting_a_subpartition_template.mdx | 0 .../index.mdx | 0 .../12_drop_table.mdx | 0 .../01_example_deleting_a_partition.mdx | 0 .../13_alter_table_drop_partition/index.mdx | 0 .../01_example_deleting_a_subpartition.mdx | 0 .../14_alter_table_drop_subpartition/index.mdx | 0 .../01_example_emptying_a_table.mdx | 0 .../15_truncate_table/index.mdx | 0 .../01_example_emptying_a_partition.mdx | 0 .../16_alter_table_truncate_partition/index.mdx | 0 .../01_example_emptying_a_subpartition.mdx | 0 .../17_alter_table_truncate_subpartition/index.mdx | 0 .../18_accessing_partition_table/index.mdx | 0 .../index.mdx | 0 ..._values_in_a_list_or_range_partitioned_table.mdx | 0 ...rtitioning_keys_in_a_range_partitioned_table.mdx | 0 .../01_all_part_tables.mdx | 0 .../02_all_tab_partitions.mdx | 0 .../03_all_tab_subpartitions.mdx | 0 .../04_all_part_key_columns.mdx | 0 .../05_all_subpart_key_columns.mdx | 0 .../01_table_partitioning_views_reference/index.mdx | 0 .../index.mdx | 0 .../images/edb_logo.png | 0 .../images/edb_logo.svg | 0 .../epas_compat_table_partitioning/index.mdx | 0 .../epas_compat_tools_guide/02_edb_loader.mdx | 0 .../epas_compat_tools_guide/03_edb_wrap.mdx | 0 ...ime_instrumentation_tools_architecture_DRITA.mdx | 0 .../epas_compat_tools_guide/images/Thumbs.db | Bin .../epas_compat_tools_guide/images/edb_logo.png | 0 .../epas_compat_tools_guide/images/edb_logo.svg | 0 .../images/epas_tools_utility_edb_wrap.png | 0 .../{14 => 15}/epas_compat_tools_guide/index.mdx | 0 .../epas_guide/01_introduction/02_conventions.mdx | 0 .../epas_guide/01_introduction/03_examples_used.mdx | 0 .../{14 => 15}/epas_guide/01_introduction/index.mdx | 0 .../02_enhanced_compatibility_features.mdx | 0 .../01_setting_new_parameters.mdx | 0 .../02_summary_of_configuration_parameters.mdx | 0 .../01_shared_buffers.mdx | 0 .../02_work_mem.mdx | 0 .../03_maintenance_work_mem.mdx | 0 .../04_wal_buffers.mdx | 0 .../05_checkpoint_segments.mdx | 0 .../06_checkpoint_completion_target.mdx | 0 .../07_checkpoint_timeout.mdx | 0 .../08_max_wal_size.mdx | 0 .../09_min_wal_size.mdx | 0 .../10_bgwriter_delay.mdx | 0 .../11_seq_page_cost.mdx | 0 .../12_random_page_cost.mdx | 0 .../13_effective_cache_size.mdx | 0 .../14_synchronous_commit.mdx | 0 .../15_edb_max_spins_per_delay.mdx | 0 .../16_pg_prewarm.autoprewarm.mdx | 0 .../17_pg_prewarm.autoprewarm_interval.mdx | 0 .../01_top_performance_related_parameters/index.mdx | 0 .../02_resource_usage_memory.mdx | 0 .../03_resource_usage_edb_resource_manager.mdx | 0 .../04_query_tuning.mdx | 0 ...05_query_tuning_planner_method_configuration.mdx | 0 .../06_reporting_and_logging_what_to_log.mdx | 0 .../07_auditing_settings/01_edb_audit.mdx | 0 .../07_auditing_settings/02_edb_audit_directory.mdx | 0 .../07_auditing_settings/03_edb_audit_filename.mdx | 0 .../04_edb_audit_rotation_day.mdx | 0 .../05_edb_audit_rotation_size.mdx | 0 .../06_edb_audit_rotation_seconds.mdx | 0 .../07_auditing_settings/07_edb_audit_connect.mdx | 0 .../08_edb_audit_disconnect.mdx | 0 .../07_auditing_settings/09_edb_audit_statement.mdx | 0 .../07_auditing_settings/10_edb_audit_tag.mdx | 0 .../11_edb_audit_destination.mdx | 0 .../12_edb_log_every_bulk_value.mdx | 0 .../07_auditing_settings/index.mdx | 0 .../08_ccd_locale_and_formatting.mdx | 0 .../09_ccd_statement_behaviour.mdx | 0 .../10_ccd_other_defaults.mdx | 0 .../11_compatibility_options.mdx | 0 .../12_customized_options.mdx | 0 .../13_ungrouped.mdx | 0 .../14_audit_archiver.mdx | 0 .../index.mdx | 0 .../01_configuration_parameters/index.mdx | 0 .../01_index_advisor_components.mdx | 0 .../02_index_advisor_configuration.mdx | 0 .../02_index_advisor/03_using_index_advisor.mdx | 0 ..._reviewing_the_index_advisor_recommendations.mdx | 0 .../05_index_advisor_limitations.mdx | 0 .../02_index_advisor/index.mdx | 0 .../03_database_administration/03_sql_profiler.mdx | 0 .../03_database_administration/04_pgsnmpd.mdx | 0 .../01_audit_logging_configuration_parameters.mdx | 0 .../02_selecting_sql_statements_to_audit.mdx | 0 .../03_enabling_audit_logging.mdx | 0 .../05_edb_audit_logging/04_audit_log_file.mdx | 0 .../05_using_error_codes_to_filter_audit_logs.mdx | 0 .../06_using_command_tags_to_filter_audit_logs.mdx | 0 .../07_redacting_passwords_from_audit_logs.mdx | 0 .../05_edb_audit_logging/08_audit_log_archiving.mdx | 0 .../05_edb_audit_logging/09_object_auditing.mdx | 0 .../05_edb_audit_logging/index.mdx | 0 .../06_unicode_collation_algorithm.mdx | 0 .../epas_guide/03_database_administration/index.mdx | 0 .../epas_guide/10_edb_resource_manager.mdx | 0 .../{14 => 15}/epas_guide/11_libpq_c_library.mdx | 0 .../docs/epas/{14 => 15}/epas_guide/12_debugger.mdx | 0 .../13_performance_analysis_and_tuning.mdx | 0 .../{14 => 15}/epas_guide/14_edb_clone_schema.mdx | 0 .../15_enhanced_sql_and_other_misc_features.mdx | 0 .../epas_guide/16_system_catalog_tables.mdx | 0 .../epas_guide/17_advanced_server_keywords.mdx | 0 .../epas/{14 => 15}/epas_guide/images/Thumbs.db | Bin .../epas_guide/images/clear_breakpoints.jpg | 0 .../epas_guide/images/debugger_window.png | 0 .../images/debugging_called_subprogram.png | 0 .../epas/{14 => 15}/epas_guide/images/edb_logo.png | 0 .../epas/{14 => 15}/epas_guide/images/edb_logo.svg | 0 .../epas_guide/images/exiting_from_debugger.png | 0 .../epas/{14 => 15}/epas_guide/images/image3.png | 0 .../epas_guide/images/local_variables_tab.png | 0 .../epas_guide/images/main_debugger_window.png | 0 .../{14 => 15}/epas_guide/images/messages_tab.png | 0 .../epas_guide/images/open_client_library.png | 0 .../{14 => 15}/epas_guide/images/parameters_tab.png | 0 .../{14 => 15}/epas_guide/images/program_body.png | 0 .../{14 => 15}/epas_guide/images/results_tab.png | 0 ...ting_global_breakpoint_from_left-hand_margin.png | 0 .../setting_global_breakpoint_from_object_menu.png | 0 .../epas/{14 => 15}/epas_guide/images/stack_tab.png | 0 .../starting_the_debugger_from_context_menu.png | 0 .../starting_the_debugger_from_object_menu.png | 0 .../{14 => 15}/epas_guide/images/toolbar_icons.jpg | 0 .../images/waiting_invocation_program_debugged.png | 0 .../docs/epas/{14 => 15}/epas_guide/index.mdx | 0 .../docs/epas/{14 => 15}/epas_limitations/index.mdx | 0 .../epas/{14 => 15}/epas_platform_support/index.mdx | 0 .../{14 => 15}/epas_qs_linux_7/images/edb_logo.png | 0 .../{14 => 15}/epas_qs_linux_7/images/edb_logo.svg | 0 .../docs/epas/{14 => 15}/epas_qs_linux_7/index.mdx | 0 .../{14 => 15}/epas_qs_linux_8/images/edb_logo.png | 0 .../{14 => 15}/epas_qs_linux_8/images/edb_logo.svg | 0 .../docs/epas/{14 => 15}/epas_qs_linux_8/index.mdx | 0 .../images/additional_configuration.png | 0 .../images/additional_directories.png | 0 .../images/advanced_server_dialect.png | 0 .../advanced_server_installation_completion.png | 0 .../images/advanced_server_installer_welcome.png | 0 .../dynatune_dynamic_tuning_server_utilization.png | 0 .../dynatune_dynamic_tuning_workload_profile.png | 0 .../{14 => 15}/epas_qs_windows/images/edb_logo.png | 0 .../{14 => 15}/epas_qs_windows/images/edb_logo.svg | 0 .../images/enterprisedb_license_agreement.png | 0 .../images/installation_directory.png | 0 .../images/installing_advanced_server.png | 0 .../epas_qs_windows/images/password_window.png | 0 .../images/pre_installation_summary.png | 0 .../epas_qs_windows/images/ready_to_install.png | 0 .../epas_qs_windows/images/select_components.png | 0 .../epas_qs_windows/images/setup_wizard.png | 0 .../images/update_notification_service.png | 0 .../docs/epas/{14 => 15}/epas_qs_windows/index.mdx | 0 .../epas_rel_notes/19_epas14.2.1_rel_notes.mdx | 0 .../epas_rel_notes/20_epas14_rel_notes.mdx | 0 .../epas_rel_notes/epas14_3_0_rel_notes.mdx | 0 .../epas_rel_notes/epas14_4_0_rel_notes.mdx | 0 .../epas_rel_notes/epas14_5_0_rel_notes.mdx | 0 .../epas_rel_notes/epas14_6_0_rel_notes.mdx | 0 .../{14 => 15}/epas_rel_notes/images/edb_logo.png | 0 .../{14 => 15}/epas_rel_notes/images/edb_logo.svg | 0 .../docs/epas/{14 => 15}/epas_rel_notes/index.mdx | 0 .../epas/{14 => 15}/epas_requirements/index.mdx | 0 .../01_sql_protect_overview.mdx | 0 .../02_configuring_sql_protect.mdx | 0 .../03_common_maintenance_operations.mdx | 0 .../04_backing_up_restoring_sql_protect.mdx | 0 .../index.mdx | 0 .../03_virtual_private_database.mdx | 0 .../{14 => 15}/epas_security_guide/04_sslutils.mdx | 0 .../epas_security_guide/05_data_redaction.mdx | 0 .../epas_security_guide/images/edb_logo.png | 0 .../epas_security_guide/images/edb_logo.svg | 0 .../epas/{14 => 15}/epas_security_guide/index.mdx | 0 product_docs/docs/epas/{14 => 15}/index.mdx | 0 .../installing/images/connect_to_epas_server.png | 0 .../epas/{14 => 15}/installing/images/edb_logo.png | 0 .../epas/{14 => 15}/installing/images/edb_logo.svg | 0 ...x_advanced_server_service_configuration_file.png | 0 .../images/pgadmin4_from_applications_menu.png | 0 .../docs/epas/{14 => 15}/installing/index.mdx | 0 .../linux_install_details/component_locations.mdx | 0 .../installing/linux_install_details/index.mdx | 0 .../installing_epas_using_local_repository.mdx | 0 .../managing_an_advanced_server_installation.mdx | 0 .../linux_install_details/rpm_packages.mdx | 0 .../installing/linux_ppc64le/epas_rhel_7.mdx | 0 .../installing/linux_ppc64le/epas_rhel_8.mdx | 0 .../installing/linux_ppc64le/epas_sles_12.mdx | 0 .../installing/linux_ppc64le/epas_sles_15.mdx | 0 .../{14 => 15}/installing/linux_ppc64le/index.mdx | 0 .../installing/linux_x86_64/epas_centos_7.mdx | 0 .../installing/linux_x86_64/epas_debian_10.mdx | 0 .../installing/linux_x86_64/epas_debian_11.mdx | 0 .../installing/linux_x86_64/epas_other_linux_8.mdx | 0 .../installing/linux_x86_64/epas_rhel_7.mdx | 0 .../installing/linux_x86_64/epas_rhel_8.mdx | 0 .../installing/linux_x86_64/epas_sles_12.mdx | 0 .../installing/linux_x86_64/epas_sles_15.mdx | 0 .../installing/linux_x86_64/epas_ubuntu_18.mdx | 0 .../installing/linux_x86_64/epas_ubuntu_20.mdx | 0 .../{14 => 15}/installing/linux_x86_64/index.mdx | 0 .../images/accessing_configuration_files.png | 0 .../windows/images/additional_configuration.png | 0 .../windows/images/additional_directories.png | 0 .../windows/images/advanced_server_dialect.png | 0 .../advanced_server_installation_completion.png | 0 .../images/advanced_server_installer_welcome.png | 0 .../windows/images/advanced_server_services.png | 0 .../windows/images/advanced_server_startup.png | 0 .../installing/windows/images/connecting_server.png | 0 .../connecting_to_advanced_server_database.png | 0 .../windows/images/connecting_to_server.png | 0 .../installing/windows/images/download_complete.png | 0 .../dynatune_dynamic_tuning_server_utilization.png | 0 .../dynatune_dynamic_tuning_workload_profile.png | 0 .../installing/windows/images/edb_logo.png | 0 .../installing/windows/images/edb_logo.svg | 0 .../images/enterprisedb_license_agreement.png | 0 .../windows/images/enterprisedb_technical_alert.png | 0 .../windows/images/installation_directory.png | 0 .../windows/images/installing_advanced_server.png | 0 .../installing/windows/images/password_window.png | 0 .../images/pgAdmin_installation_directory.png | 0 .../installing/windows/images/pgAdmin_welcome.png | 0 .../windows/images/pgadmin4_client_dashboard.png | 0 .../windows/images/pgadmin_installation.png | 0 .../windows/images/pre_installation_summary.png | 0 .../installing/windows/images/proxy_servers.png | 0 .../installing/windows/images/ready_to_install.png | 0 .../installing/windows/images/select_components.png | 0 .../installing/windows/images/setup_wizard.png | 0 .../windows/images/stackbuilder_category_AS.png | 0 .../windows/images/stackbuilder_missing_pgAdmin.png | 0 .../stackbuilder_plus_completed_installation.png | 0 .../images/stackbuilder_plus_module_selection.png | 0 .../windows/images/stackbuilder_plus_welcome.png | 0 .../summary_window_displaying_selected_packages.png | 0 .../windows/images/update_notification_service.png | 0 .../epas/{14 => 15}/installing/windows/index.mdx | 0 .../index.mdx | 0 .../index.mdx | 0 ...ming_an_installation_with_limited_privileges.mdx | 0 .../performing_an_unattended_installation.mdx | 0 .../reference_command_line_options.mdx | 0 ...rforming_a_graphical_installation_on_windows.mdx | 0 .../using_stackbuilder_plus.mdx | 0 .../configuring_epas.mdx | 0 ...ntrolling_server_startup_behavior_on_windows.mdx | 0 .../index.mdx | 0 .../using_pg_ctl_to_control_advanced_server.mdx | 0 .../using_the_windows_services_applet.mdx | 0 .../01_supported_database_server_versions.mdx | 0 .../language_pack/02_installing_language_pack.mdx | 0 .../03_using_the_procedural_languages.mdx | 0 .../language_pack/04_uninstalling_language_pack.mdx | 0 .../{14 => 15}/language_pack/images/EDB_logo.png | 0 .../{14 => 15}/language_pack/images/complete1.png | 0 .../epas/{14 => 15}/language_pack/images/edb.png | 0 .../{14 => 15}/language_pack/images/edb_logo.svg | 0 .../language_pack/images/installation_complete.png | 0 .../{14 => 15}/language_pack/images/language1.png | 0 .../images/language_pack_selected_pacakges.png | 0 .../images/language_pack_versions_selection.png | 0 .../language_pack/images/language_pack_welcome.png | 0 .../{14 => 15}/language_pack/images/lp.2_aug6.png | 0 .../{14 => 15}/language_pack/images/lp3_aug6.png | 0 .../{14 => 15}/language_pack/images/lp4_aug6.png | 0 .../{14 => 15}/language_pack/images/lp_aug6.png | 0 .../{14 => 15}/language_pack/images/sb2_aug6.png | 0 .../{14 => 15}/language_pack/images/sb3_aug6.png | 0 .../{14 => 15}/language_pack/images/sb4_aug6.png | 0 .../{14 => 15}/language_pack/images/sb_aug6.png | 0 .../images/stackbuilder_installation_complete.png | 0 .../language_pack/images/stackbuilder_welcome.png | 0 .../language_pack/images/the_installing_dialog.png | 0 .../the_language_pack_setup_complete_dialog.png | 0 .../images/the_language_pack_welcome_window.png | 0 .../images/the_ready_to_install_dialog.png | 0 .../images/the_stackbuilder_plus_window.png | 0 .../language_pack/images/uninstall_lp1.png | 0 .../language_pack/images/uninstall_lp2.png | 0 .../docs/epas/{14 => 15}/language_pack/index.mdx | 0 .../docs/epas/{14 => 15}/troubleshooting/index.mdx | 0 .../linux_troubleshooting/enabling_core_dump.mdx | 0 .../troubleshooting/linux_troubleshooting/index.mdx | 0 .../installation_troubleshooting_linux.mdx | 0 .../troubleshooting/windows_troubleshooting.mdx | 0 .../images/acknowledging_components_removed.png | 0 .../images/advanced_server_uninstaller.png | 0 .../uninstalling/images/uninstallation_complete.png | 0 .../docs/epas/{14 => 15}/uninstalling/index.mdx | 0 .../{14 => 15}/uninstalling/linux_uninstall.mdx | 0 .../{14 => 15}/uninstalling/windows_uninstall.mdx | 0 .../epas/{14 => 15}/upgrading/03_limitations.mdx | 0 .../01_linking_versus_copying.mdx | 0 .../01_performing_an_upgrade/index.mdx | 0 .../01_command_line_options_reference.mdx | 0 .../02_invoking_pg_upgrade/index.mdx | 0 .../03_upgrading_to_advanced_server.mdx | 0 .../04_upgrading_a_pgAgent_installation.mdx | 0 .../05_pg_upgrade_troubleshooting.mdx | 0 .../06_reverting_to_the_old_cluster.mdx | 0 .../index.mdx | 0 ..._minor_version_update_of_an_rpm_installation.mdx | 0 ...ilder_plus_to_perform_a_minor_version_update.mdx | 0 ..._advanced_server_to_use_trust_authentication.png | 0 .../images/download_complete_confirmation.png | 0 .../images/selected_packages_summary_window.png | 0 ...der_plus_confirms_the_completed_installation.png | 0 .../upgrading/images/the_proxy_servers_dialog.png | 0 ...he_stackBuilder_plus_module_selection_window.png | 0 .../the_stackBuilder_plus_registration_window.png | 0 .../images/the_stackBuilder_plus_welcome.png | 0 .../docs/epas/{14 => 15}/upgrading/index.mdx | 0 983 files changed, 0 insertions(+), 0 deletions(-) rename product_docs/docs/epas/{14 => 15}/deployment_options/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/ecpgplus_guide/02_overview.mdx (100%) rename product_docs/docs/epas/{14 => 15}/ecpgplus_guide/03_using_embedded_sql.mdx (100%) rename product_docs/docs/epas/{14 => 15}/ecpgplus_guide/04_using_descriptors.mdx (100%) rename product_docs/docs/epas/{14 => 15}/ecpgplus_guide/05_building_executing_dynamic_sql_statements.mdx (100%) rename product_docs/docs/epas/{14 => 15}/ecpgplus_guide/06_error_handling.mdx (100%) rename product_docs/docs/epas/{14 => 15}/ecpgplus_guide/07_reference.mdx (100%) rename product_docs/docs/epas/{14 => 15}/ecpgplus_guide/images/ecpg_path.png (100%) rename product_docs/docs/epas/{14 => 15}/ecpgplus_guide/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/ecpgplus_guide/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/ecpgplus_guide/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/edb_pgadmin_linux_qs/images/E.ico (100%) rename product_docs/docs/epas/{14 => 15}/edb_pgadmin_linux_qs/images/EDB_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/edb_pgadmin_linux_qs/images/connect_to_epas_server.png (100%) rename product_docs/docs/epas/{14 => 15}/edb_pgadmin_linux_qs/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/edb_pgadmin_linux_qs/images/edb_pgadmin4_first_look.png (100%) rename product_docs/docs/epas/{14 => 15}/edb_pgadmin_linux_qs/images/pgadmin4_from_applications_menu.png (100%) rename product_docs/docs/epas/{14 => 15}/edb_pgadmin_linux_qs/images/server_general.png (100%) rename product_docs/docs/epas/{14 => 15}/edb_pgadmin_linux_qs/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/02_packages/01_package_components.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/02_packages/02_creating_packages.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/02_packages/03_referencing_a_package.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/02_packages/04_using_packages_with_user_defined_types.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/02_packages/05_dropping_a_package.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/02_packages/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/01_dbms_alert.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/01_enqueue.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/02_dequeue.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/03_register.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/04_unregister.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/01_alter_queue.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/02_alter_queue_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/03_create_queue.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/04_create_queue_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/05_drop_queue.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/06_drop_queue_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/07_purge_queue_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/08_start_queue.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/09_stop_queue.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/01_decrypt.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/02_encrypt.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/03_hash.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/04_mac.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/05_randombytes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/06_randominteger.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/07_randomnumber.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/01_broken.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/02_change.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/03_interval.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/04_next_date.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/05_remove.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/06_run.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/07_submit.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/08_what.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/01_append.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/02_compare.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/03_converttoblob.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/04_converttoclob.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/05_copy.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/06_erase.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/07_get_storage_limit.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/08_getlength.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/09_instr.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/10_read.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/11_substr.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/12_trim.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/13_write.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/14_writeappend.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/07_dbms_lock.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/01_get_mv_dependencies.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/02_refresh.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/03_refresh_all_mviews.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/04_refresh_dependent.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/09_dbms_output.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/01_create_pipe.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/02_next_item_pipe.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/03_pack_message.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/04_purge.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/05_receive_message.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/06_remove_pipe.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/07_reset_buffer.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/08_send_message.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/09_unique_session_name.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/10_unpack_message.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/11_comprehensive_example.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/11_dbms_profiler.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/12_dbms_random.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/13_dbms_redact.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/14_dbms_rls.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/01_using_calendar_syntax_to_specify_a_repeating_interval.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/02_create_job.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/03_create_program.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/04_create_schedule.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/05_define_program_argument.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/06_dbms_scheduler_disable.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/07_drop_job.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/08_drop_program.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/09_drop_program_argument.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/10_drop_schedule.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/11_dbms_scheduler_enable.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/12_evaluate_calendar_string.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/13_run_job.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/14_set_job_argument_value.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/16_dbms_session.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/01_bind_variable.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/02_bind_variable_char.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/03_bind_variable_raw.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/04_close_cursor.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/05_column_value.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/06_column_value_char.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/07_column_value_raw.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/08_define_column.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/09_define_column_char.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/10_define_column_raw.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/11_describe_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/12_execute.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/13_execute_and_fetch.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/14_fetch_rows.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/15_is_open.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/16_last_row_count.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/17_open_cursor.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/18_parse.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/01_base64_decode.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/02_base64_encode.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/03_mimeheader_decode.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/04_mimeheader_encode.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/05_quoted_printable_decode.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/06_quoted_printable_encode.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/07_text_decode.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/08_text_encode.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/09_uudecode.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/10_uuencode.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/20_utl_file.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/21_utl_http.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/22_utl_mail.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/23_utl_raw.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/24_utl_smtp.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/25_utl_url.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/03_built-in_packages/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/images/EDB_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/images/edblogo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/images/image2.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/images/media/image2.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/02_all_all_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/03_all_cons_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/04_all_constraints.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/05_all_col_privs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/06_all_db_links.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/07_all_dependencies.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/08_all_directories.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/09_all_ind_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/10_all_indexes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/11_all_jobs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/12_all_objects.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/13_all_part_key_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/14_all_part_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/15_all_policies.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/16_all_queues.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/17_all_queue_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/18_all_sequences.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/19_all_source.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/20_all_subpart_key_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/21_all_synonyms.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/22_all_tab_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/23_all_tab_partitions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/24_all_tab_subpartitions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/25_all_tab_privs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/26_all_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/27_all_triggers.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/28_all_types.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/29_all_users.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/30_all_view_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/31_all_views.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/32_dba_all_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/33_dba_cons_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/34_dba_constraints.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/35_dba_col_privs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/36_dba_db_links.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/37_dba_directories.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/38_dba_dependencies.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/39_dba_ind_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/40_dba_indexes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/41_dba_jobs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/42_dba_objects.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/43_dba_part_key_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/44_dba_part_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/45_dba_policies.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/46_dba_profiles.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/47_dba_queues.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/48_dba_queue_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/49_dba_role_privs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/50_dba_roles.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/51_dba_sequences.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/52_dba_source.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/53_dba_subpart_key_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/54_dba_synonyms.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/55_dba_tab_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/56_dba_tab_partitions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/57_dba_tab_subpartitions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/58_dba_tab_privs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/59_dba_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/60_dba_triggers.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/61_dba_types.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/62_dba_users.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/63_dba_view_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/64_dba_views.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/65_user_all_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/66_user_cons_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/67_user_constraints.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/68_user_col_privs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/69_user_db_links.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/70_user_dependencies.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/71_user_indexes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/72_user_jobs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/73_user_objects.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/74_user_part_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/75_user_policies.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/76_user_queues.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/77_user_queue_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/78_user_role_privs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/79_user_sequences.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/80_user_source.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/81_user_subpart_key_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/82_user_synonyms.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/83_user_tab_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/84_user_tab_partitions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/85_user_tab_subpartitions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/86_user_tab_privs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/87_user_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/88_user_triggers.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/89_user_types.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/90_user_users.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/91_user_view_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/92_user_views.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/93_v_version.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/94_product_component_version.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/oracle_compatible_views/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/pg_views/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_cat_views/pg_views/pg_user.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/01_introduction/01_edb_redwood_date.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/01_introduction/02_edb_redwood_raw_names.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/01_introduction/03_edb_redwood_strings.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/01_introduction/04_edb_stmt_level_tx.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/01_introduction/05_oracle_home.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/01_introduction/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_about_the_examples_used_in_this_guide.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/01_sample_database_installation.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/02_sample_database_description.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/02_creating_a_new_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/03_populating_a_table_with_rows.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/04_querying_a_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/05_joins_between_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/06_aggregate_functions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/07_updates.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/08_deletions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/09_the_sql_language.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/02_sql_tutorial/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/01_views.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/02_foreign_keys.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/03_the_rownum_pseudo_column.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/04_synonyms.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/01_defining_the_parent_child_relationship.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/02_selecting_the_root_nodes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/03_organization_tree_in_the_sample_application.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/04_node_level.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/05_ordering_the_siblings.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/06_retrieving_the_root_node_with_connect_by_root.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/07_retrieving_a_path_with_sys_connect_by_path.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/01_rollup_extension.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/02_cube_extension.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/03_grouping_sets_extension.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/04_grouping_function.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/05_grouping_id_function.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/03_advanced_concepts/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/04_profile_management/01_creating_a_new_profile/01_creating_a_password_function.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/04_profile_management/01_creating_a_new_profile/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/04_profile_management/02_altering_a_profile.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/04_profile_management/03_dropping_a_profile.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/04_profile_management/04_associating_a_profile_with_an_existing_role.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/04_profile_management/05_unlocking_a_locked_account.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/04_profile_management/06_creating_a_new_role_associated_with_a_profile.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/04_profile_management/07_backing_up_profile_management_functions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/04_profile_management/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/05_optimizer_hints/01_default_optimization_modes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/05_optimizer_hints/03_specifying_a_join_order.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/05_optimizer_hints/04_joining_relations_hints.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/05_optimizer_hints/05_global_hints.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/05_optimizer_hints/06_using_the_append_optimizer_hint.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/05_optimizer_hints/07_parallelism_hints.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/05_optimizer_hints/08_conflicting_hints.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/05_optimizer_hints/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/01_dblink_ora_connect.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/02_dblink_ora_status.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/03_dblink_ora_disconnect.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/04_dblink_ora_record.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/05_dblink_ora_call.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/06_dblink_ora_exec.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/07_dblink_ora_copy.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/06_dblink_ora/02_calling_dblink_ora_functions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/06_dblink_ora/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/07_open_client_library.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/08_oracle_catalog_views.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/09_tools_and_utilities.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/10_ecpgplus.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/11_system_catalog_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/images/definer's_rights_package.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/images/definers_rights_package.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/images/edb_postgres.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/images/employee_organization_hierarchy.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/images/invokers_rights_programs.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/images/open_client_library.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/images/sample_database_tables.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_ora_dev_guide/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/01_sql_syntax/01_lexical_structure.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/01_sql_syntax/02_identifiers_and_key_words.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/01_sql_syntax/03_constants.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/01_sql_syntax/04_comments.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/01_sql_syntax/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/02_data_types/01_numeric_types.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/02_data_types/02_character_types.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/02_data_types/03_binary_data.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/02_data_types/04_date_time_types.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/02_data_types/05_boolean_type.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/02_data_types/06_xml_type.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/02_data_types/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/01_logical_operators.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/02_comparison_operators.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/03_mathematical_functions_and_operators.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/04_string_functions_and_operators.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/05_pattern_matching_string_functions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/06_pattern_matching_using_the_like_operator.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/09_sequence_manipulation_functions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/10_conditional_expressions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/11_aggregate_functions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/12_subquery_expressions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/13_identifier_functions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/14_bitwise_functions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/03_functions_and_operators/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/02_the_sql_language/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/03_system_catalog_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_reference/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/01_basic_spl_elements/02_case_sensitivity.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/01_basic_spl_elements/03_identifiers.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/01_basic_spl_elements/04_qualifiers.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/01_basic_spl_elements/05_constants.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/01_basic_spl_elements/06_user_defined_pl_sql_subtypes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/01_basic_spl_elements/07_character.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/01_basic_spl_elements/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/02_spl_block_structure.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/03_anonymous_blocks.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/04_procedures_overview/01_creating_a_procedure.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/04_procedures_overview/02_calling_a_procedure.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/04_procedures_overview/03_deleting_a_procedure.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/04_procedures_overview/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/05_functions_overview/01_creating_a_function.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/05_functions_overview/02_calling_a_function.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/05_functions_overview/03_deleting_a_function.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/05_functions_overview/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/01_positional_vs_named_parameter_notation.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/02_parameter_modes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/03_using_default_values_in_parameters.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/01_creating_a_subprocedure.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/02_creating_a_subfunction.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/03_block_relationships.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/04_invoking_subprograms.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/05_using_forward_declarations.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/06_overloading_subprograms.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/07_accessing_subprogram_variables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/08_compilation_errors_in_procedures_and_functions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/09_program_security/01_execute_privilege.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/09_program_security/02_database_object_name_resolution.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/09_program_security/03_database_object_privileges.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/09_program_security/04_definers_vs_invokers_rights.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/09_program_security/05_security_example.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/09_program_security/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/02_spl_programs/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/03_variable_declarations/01_declaring_a_variable.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/03_variable_declarations/02_using__type_in_variable_declarations.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/03_variable_declarations/03_using__row_type_in_record_declarations.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/03_variable_declarations/04_user_defined_record_types_and_record_variables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/03_variable_declarations/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/04_basic_statements/01_assignment.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/04_basic_statements/02_delete.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/04_basic_statements/03_insert.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/04_basic_statements/04_null.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/04_basic_statements/05_using_the_returning_into_clause.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/04_basic_statements/06_select_into.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/04_basic_statements/07_update.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/04_basic_statements/08_obtaining_the_result_status.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/04_basic_statements/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/01_if_statement/01_if_then.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/01_if_statement/02_if_then_else.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/01_if_statement/03_if_then_else_if.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/01_if_statement/04_if_then_elseif_else.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/01_if_statement/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/02_return_statement.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/03_goto_statement.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/04_case_expression/01_selector_case_expression.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/04_case_expression/02_searched_case_expression.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/04_case_expression/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/05_case_statement/01_selector_case_statement.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/05_case_statement/02_searched_case_statement.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/05_case_statement/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/06_loops/01_loop.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/06_loops/02_exit.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/06_loops/03_continue.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/06_loops/04_while.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/06_loops/05_for_integer_variant.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/06_loops/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/07_exception_handling.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/08_user_defined_exceptions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/09_pragma_exception_init.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/10_raise_application_error.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/05_control_structures/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/06_transaction_control/01_commit.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/06_transaction_control/02_rollback.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/06_transaction_control/03_pragma_autonomous_transaction.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/06_transaction_control/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/07_dynamic_sql.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/01_declaring_a_cursor.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/02_opening_a_cursor.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/03_fetching_rows_from_a_cursor.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/04_closing_a_cursor.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/05_using__rowtype_with_cursors.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/06_cursor_attributes/01_isopen.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/06_cursor_attributes/02_found.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/06_cursor_attributes/03_notfound.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/06_cursor_attributes/04_rowcount.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/06_cursor_attributes/05_summary_of_cursor_states_and_attributes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/06_cursor_attributes/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/07_cursor_for_loop.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/08_parameterized_cursors.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/08_static_cursors/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/01_ref_cursor_overview.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/01_declaring_a_sys_refcursor_cursor_variable.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/02_declaring_a_user_defined_ref_cursor_type_variable.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/03_opening_a_cursor_variable.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/04_fetching_rows_from_a_cursor_variable.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/05_closing_a_cursor_variable.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/06_usage_restrictions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/01_returning_a_ref_cursor_from_a_function.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/02_modularizing_cursor_operations.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/08_dynamic_queries_with_ref_cursors.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/09_ref_cursors_and_cursor_variables/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/10_collections/01_associative_arrays.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/10_collections/02_nested_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/10_collections/03_varrays.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/10_collections/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/11_collection_methods/01_count.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/11_collection_methods/02_deletes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/11_collection_methods/03_exists.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/11_collection_methods/04_extend.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/11_collection_methods/05_first.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/11_collection_methods/06_last.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/11_collection_methods/07_limit.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/11_collection_methods/08_next.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/11_collection_methods/09_prior.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/11_collection_methods/10_trim.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/11_collection_methods/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/12_working_with_collections/01_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/12_working_with_collections/02_using_the_multiset_union_operator.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/12_working_with_collections/03_using_the_forall_statement.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/01_select_bulk_collect.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/02_fetch_bulk_collect.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/03_execute_immediate_bulk_collect.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/04_returning_bulk_collect.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/12_working_with_collections/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/01_overview.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/02_types_of_triggers.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/03_creating_triggers.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/04_trigger_variables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/05_transactions_and_exceptions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/06_compound_triggers.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/07_trigger_examples/01_before_statement_level_trigger.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/07_trigger_examples/02_after_statement_level_trigger.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/07_trigger_examples/03_before_row_level_trigger.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/07_trigger_examples/04_after_row_level_trigger.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/07_trigger_examples/05_instead_of_trigger.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/07_trigger_examples/06_compound_trigger.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/07_trigger_examples/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/13_triggers/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/14_packages.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/01_attributes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/02_methods.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/03_overloading_methods.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/02_object_type_components/01_object_type_specification_syntax.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/02_object_type_components/02_object_type_body_syntax.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/02_object_type_components/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/01_member_methods.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/02_static_methods.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/03_constructor_methods.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/04_creating_object_instances.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/05_referencing_an_object.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/06_dropping_an_object_type.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/15_object_types_and_objects/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/images/definer's_rights_package.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/images/definers_rights_package.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/images/employee_organization_hierarchy.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/images/invokers_rights_programs.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/images/open_client_library.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/images/sample_database_tables.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_spl/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/02_alter_directory.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/03_alter_index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/04_alter_procedure.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/05_alter_profile.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/06_alter_queue.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/07_alter_queue_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/08_alter_role_identified_by.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/09_alter_role_managing_database_link_and_dbms_rls_privileges.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/10_alter_sequence.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/11_alter_session.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/11a_alter_synonym.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/12_alter_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/13_alter_trigger.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/14_alter_tablespace.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/15_alter_user_identified_by.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/16_alter_user_role_profile_management_clauses.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/17_call.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/18_comment.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/19_commit.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/20_create_database.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/21_create_public_database_link.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/22_create_directory.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/23_create_function.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/24_create_index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/25_create_materialized_view.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/26_create_package.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/27_create_package_body.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/28_create_procedure.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/29_create_profile.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/30_create_queue.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/31_create_queue_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/32_create_role.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/33_create_schema.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/34_create_sequence.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/35_create_synonym.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/36_create_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/37_create_table_as.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/38_create_trigger.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/39_create_type.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/40_create_type_body.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/41_create_user.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/42_create_user_role_profile_management_clauses.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/43_create_view.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/44_delete.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/45_drop_public_database_link.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/46_drop_directory.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/47_drop_function.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/48_drop_index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/49_drop_package.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/50_drop_procedure.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/51_drop_profile.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/52_drop_queue.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/53_drop_queue_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/54_drop_synonym.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/55_drop_role.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/56_drop_sequence.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/57_drop_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/58_drop_tablespace.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/59_drop_trigger.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/60_drop_type.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/61_drop_user.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/62_drop_view.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/63_exec.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/64_grant.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/65_insert.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/66_lock.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/67_revoke.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/68_rollback.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/69_rollback_to_savepoint.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/70_savepoint.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/71_select.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/72_set_constraints.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/73_set_role.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/74_set_transaction.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/75_truncate.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/76_update.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_sql/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/02_selecting_a_partition_type/01_interval_range_partitioning.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/02_selecting_a_partition_type/02_automatic_list_partitioning.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/02_selecting_a_partition_type/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/03_using_partition_pruning/01_example_partition_pruning.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/03_using_partition_pruning/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/01_example_partition_by_list.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/02_example_automatic_list_partition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/03_example_partition_by_range.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/04_example_interval_range_partition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/05_example_partition_by_hash.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/06_example_partitions_number.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/07_example_partition_by_range_subpartition_by_list.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/08_example_creating_unique_index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/09_example_subpartition_template.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/01_example_adding_a_partition_to_a_list_partitioned_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/02_example_adding_a_partition_to_a_range_partitioned_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/03_example_adding_a_partition_with_subpartitions_number.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/01_example_adding_a_subpartition_to_a_list_range_partitioned_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/02_example_adding_a_subpartition_to_a_range_list_partitioned_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/01_example_splitting_a_list_partition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/02_example_splitting_a_range_partition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/03_example_splitting_a_range_list_partition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/01_example_splitting_a_list_subpartition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/02_example_splitting_a_range_subpartition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/01_example_exchanging_a_table_for_a_partition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/01_example_moving_a_partition_to_a_different_tablespace.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/01_example_renaming_a_partition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/01_example_setting_an_interval_range_partition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/01_example_setting_an_automatic_list_partition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/01_example_setting_a_subpartition_template.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/12_drop_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/01_example_deleting_a_partition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/01_example_deleting_a_subpartition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/01_example_emptying_a_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/01_example_emptying_a_partition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/01_example_emptying_a_subpartition.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/18_accessing_partition_table/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/05_handling_stray_values_in_a_list_or_range_partitioned_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/06_specifying_multiple_partitioning_keys_in_a_range_partitioned_table.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/01_all_part_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/02_all_tab_partitions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/03_all_tab_subpartitions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/04_all_part_key_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/05_all_subpart_key_columns.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_table_partitioning/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_tools_guide/02_edb_loader.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_tools_guide/03_edb_wrap.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_tools_guide/04_dynamic_runtime_instrumentation_tools_architecture_DRITA.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_tools_guide/images/Thumbs.db (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_tools_guide/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_tools_guide/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_tools_guide/images/epas_tools_utility_edb_wrap.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_compat_tools_guide/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/01_introduction/02_conventions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/01_introduction/03_examples_used.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/01_introduction/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/02_enhanced_compatibility_features.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/01_setting_new_parameters.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/02_summary_of_configuration_parameters.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/01_shared_buffers.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/02_work_mem.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/03_maintenance_work_mem.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/04_wal_buffers.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/05_checkpoint_segments.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/06_checkpoint_completion_target.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/07_checkpoint_timeout.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/08_max_wal_size.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/09_min_wal_size.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/10_bgwriter_delay.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/11_seq_page_cost.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/12_random_page_cost.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/13_effective_cache_size.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/14_synchronous_commit.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/15_edb_max_spins_per_delay.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/16_pg_prewarm.autoprewarm.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/17_pg_prewarm.autoprewarm_interval.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/02_resource_usage_memory.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/03_resource_usage_edb_resource_manager.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/04_query_tuning.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/05_query_tuning_planner_method_configuration.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/06_reporting_and_logging_what_to_log.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/01_edb_audit.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/02_edb_audit_directory.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/03_edb_audit_filename.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/04_edb_audit_rotation_day.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/05_edb_audit_rotation_size.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/06_edb_audit_rotation_seconds.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/07_edb_audit_connect.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/08_edb_audit_disconnect.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/09_edb_audit_statement.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/10_edb_audit_tag.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/11_edb_audit_destination.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/12_edb_log_every_bulk_value.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/08_ccd_locale_and_formatting.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/09_ccd_statement_behaviour.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/10_ccd_other_defaults.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/11_compatibility_options.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/12_customized_options.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/13_ungrouped.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/14_audit_archiver.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/01_configuration_parameters/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/02_index_advisor/01_index_advisor_components.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/02_index_advisor/02_index_advisor_configuration.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/02_index_advisor/03_using_index_advisor.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/02_index_advisor/04_reviewing_the_index_advisor_recommendations.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/02_index_advisor/05_index_advisor_limitations.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/02_index_advisor/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/03_sql_profiler.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/04_pgsnmpd.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/05_edb_audit_logging/01_audit_logging_configuration_parameters.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/05_edb_audit_logging/02_selecting_sql_statements_to_audit.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/05_edb_audit_logging/03_enabling_audit_logging.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/05_edb_audit_logging/05_using_error_codes_to_filter_audit_logs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/05_edb_audit_logging/06_using_command_tags_to_filter_audit_logs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/05_edb_audit_logging/07_redacting_passwords_from_audit_logs.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/05_edb_audit_logging/08_audit_log_archiving.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/05_edb_audit_logging/09_object_auditing.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/05_edb_audit_logging/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/06_unicode_collation_algorithm.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/03_database_administration/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/10_edb_resource_manager.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/11_libpq_c_library.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/12_debugger.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/13_performance_analysis_and_tuning.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/14_edb_clone_schema.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/15_enhanced_sql_and_other_misc_features.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/16_system_catalog_tables.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/17_advanced_server_keywords.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/Thumbs.db (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/clear_breakpoints.jpg (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/debugger_window.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/debugging_called_subprogram.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/exiting_from_debugger.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/image3.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/local_variables_tab.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/main_debugger_window.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/messages_tab.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/open_client_library.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/parameters_tab.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/program_body.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/results_tab.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/setting_global_breakpoint_from_left-hand_margin.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/setting_global_breakpoint_from_object_menu.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/stack_tab.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/starting_the_debugger_from_context_menu.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/starting_the_debugger_from_object_menu.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/toolbar_icons.jpg (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/images/waiting_invocation_program_debugged.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_guide/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_limitations/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_platform_support/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_linux_7/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_linux_7/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_linux_7/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_linux_8/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_linux_8/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_linux_8/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/additional_configuration.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/additional_directories.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/advanced_server_dialect.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/advanced_server_installation_completion.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/advanced_server_installer_welcome.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/dynatune_dynamic_tuning_server_utilization.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/dynatune_dynamic_tuning_workload_profile.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/enterprisedb_license_agreement.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/installation_directory.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/installing_advanced_server.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/password_window.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/pre_installation_summary.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/ready_to_install.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/select_components.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/setup_wizard.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/images/update_notification_service.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_qs_windows/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_rel_notes/19_epas14.2.1_rel_notes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_rel_notes/20_epas14_rel_notes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_rel_notes/epas14_3_0_rel_notes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_rel_notes/epas14_4_0_rel_notes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_rel_notes/epas14_5_0_rel_notes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_rel_notes/epas14_6_0_rel_notes.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_rel_notes/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_rel_notes/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_rel_notes/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_requirements/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_security_guide/02_protecting_against_sql_injection_attacks/01_sql_protect_overview.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_security_guide/02_protecting_against_sql_injection_attacks/02_configuring_sql_protect.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_security_guide/02_protecting_against_sql_injection_attacks/03_common_maintenance_operations.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_security_guide/02_protecting_against_sql_injection_attacks/04_backing_up_restoring_sql_protect.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_security_guide/02_protecting_against_sql_injection_attacks/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_security_guide/03_virtual_private_database.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_security_guide/04_sslutils.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_security_guide/05_data_redaction.mdx (100%) rename product_docs/docs/epas/{14 => 15}/epas_security_guide/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/epas_security_guide/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/epas_security_guide/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/images/connect_to_epas_server.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/installing/images/epas_linux_advanced_server_service_configuration_file.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/images/pgadmin4_from_applications_menu.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_install_details/component_locations.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_install_details/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_install_details/installing_epas_using_local_repository.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_install_details/managing_an_advanced_server_installation.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_install_details/rpm_packages.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_ppc64le/epas_rhel_7.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_ppc64le/epas_rhel_8.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_ppc64le/epas_sles_12.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_ppc64le/epas_sles_15.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_ppc64le/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_x86_64/epas_centos_7.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_x86_64/epas_debian_10.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_x86_64/epas_debian_11.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_x86_64/epas_other_linux_8.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_x86_64/epas_rhel_7.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_x86_64/epas_rhel_8.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_x86_64/epas_sles_12.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_x86_64/epas_sles_15.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_x86_64/epas_ubuntu_18.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_x86_64/epas_ubuntu_20.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/linux_x86_64/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/accessing_configuration_files.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/additional_configuration.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/additional_directories.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/advanced_server_dialect.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/advanced_server_installation_completion.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/advanced_server_installer_welcome.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/advanced_server_services.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/advanced_server_startup.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/connecting_server.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/connecting_to_advanced_server_database.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/connecting_to_server.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/download_complete.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/dynatune_dynamic_tuning_server_utilization.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/dynatune_dynamic_tuning_workload_profile.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/edb_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/enterprisedb_license_agreement.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/enterprisedb_technical_alert.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/installation_directory.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/installing_advanced_server.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/password_window.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/pgAdmin_installation_directory.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/pgAdmin_welcome.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/pgadmin4_client_dashboard.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/pgadmin_installation.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/pre_installation_summary.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/proxy_servers.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/ready_to_install.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/select_components.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/setup_wizard.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/stackbuilder_category_AS.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/stackbuilder_missing_pgAdmin.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/stackbuilder_plus_completed_installation.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/stackbuilder_plus_module_selection.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/stackbuilder_plus_welcome.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/summary_window_displaying_selected_packages.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/images/update_notification_service.png (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/installing_advanced_server_with_the_interactive_installer/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/performing_an_installation_with_limited_privileges.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/performing_an_unattended_installation.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/reference_command_line_options.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/installing_advanced_server_with_the_interactive_installer/performing_a_graphical_installation_on_windows.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/installing_advanced_server_with_the_interactive_installer/using_stackbuilder_plus.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/managing_an_advanced_server_installation/configuring_epas.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/managing_an_advanced_server_installation/controlling_server_startup_behavior_on_windows.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/managing_an_advanced_server_installation/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/managing_an_advanced_server_installation/using_pg_ctl_to_control_advanced_server.mdx (100%) rename product_docs/docs/epas/{14 => 15}/installing/windows/managing_an_advanced_server_installation/using_the_windows_services_applet.mdx (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/01_supported_database_server_versions.mdx (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/02_installing_language_pack.mdx (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/03_using_the_procedural_languages.mdx (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/04_uninstalling_language_pack.mdx (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/EDB_logo.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/complete1.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/edb.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/edb_logo.svg (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/installation_complete.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/language1.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/language_pack_selected_pacakges.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/language_pack_versions_selection.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/language_pack_welcome.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/lp.2_aug6.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/lp3_aug6.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/lp4_aug6.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/lp_aug6.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/sb2_aug6.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/sb3_aug6.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/sb4_aug6.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/sb_aug6.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/stackbuilder_installation_complete.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/stackbuilder_welcome.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/the_installing_dialog.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/the_language_pack_setup_complete_dialog.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/the_language_pack_welcome_window.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/the_ready_to_install_dialog.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/the_stackbuilder_plus_window.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/uninstall_lp1.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/images/uninstall_lp2.png (100%) rename product_docs/docs/epas/{14 => 15}/language_pack/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/troubleshooting/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/troubleshooting/linux_troubleshooting/enabling_core_dump.mdx (100%) rename product_docs/docs/epas/{14 => 15}/troubleshooting/linux_troubleshooting/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux.mdx (100%) rename product_docs/docs/epas/{14 => 15}/troubleshooting/windows_troubleshooting.mdx (100%) rename product_docs/docs/epas/{14 => 15}/uninstalling/images/acknowledging_components_removed.png (100%) rename product_docs/docs/epas/{14 => 15}/uninstalling/images/advanced_server_uninstaller.png (100%) rename product_docs/docs/epas/{14 => 15}/uninstalling/images/uninstallation_complete.png (100%) rename product_docs/docs/epas/{14 => 15}/uninstalling/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/uninstalling/linux_uninstall.mdx (100%) rename product_docs/docs/epas/{14 => 15}/uninstalling/windows_uninstall.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/03_limitations.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/01_linking_versus_copying.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/01_command_line_options_reference.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/04_upgrading_an_installation_with_pg_upgrade/03_upgrading_to_advanced_server.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/04_upgrading_an_installation_with_pg_upgrade/04_upgrading_a_pgAgent_installation.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/04_upgrading_an_installation_with_pg_upgrade/05_pg_upgrade_troubleshooting.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/04_upgrading_an_installation_with_pg_upgrade/06_reverting_to_the_old_cluster.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/04_upgrading_an_installation_with_pg_upgrade/index.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/05_performing_a_minor_version_update_of_an_rpm_installation.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/06_using_stackbuilder_plus_to_perform_a_minor_version_update.mdx (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/images/configuring_advanced_server_to_use_trust_authentication.png (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/images/download_complete_confirmation.png (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/images/selected_packages_summary_window.png (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/images/stackBuilder_plus_confirms_the_completed_installation.png (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/images/the_proxy_servers_dialog.png (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/images/the_stackBuilder_plus_module_selection_window.png (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/images/the_stackBuilder_plus_registration_window.png (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/images/the_stackBuilder_plus_welcome.png (100%) rename product_docs/docs/epas/{14 => 15}/upgrading/index.mdx (100%) diff --git a/product_docs/docs/epas/14/deployment_options/index.mdx b/product_docs/docs/epas/15/deployment_options/index.mdx similarity index 100% rename from product_docs/docs/epas/14/deployment_options/index.mdx rename to product_docs/docs/epas/15/deployment_options/index.mdx diff --git a/product_docs/docs/epas/14/ecpgplus_guide/02_overview.mdx b/product_docs/docs/epas/15/ecpgplus_guide/02_overview.mdx similarity index 100% rename from product_docs/docs/epas/14/ecpgplus_guide/02_overview.mdx rename to product_docs/docs/epas/15/ecpgplus_guide/02_overview.mdx diff --git a/product_docs/docs/epas/14/ecpgplus_guide/03_using_embedded_sql.mdx b/product_docs/docs/epas/15/ecpgplus_guide/03_using_embedded_sql.mdx similarity index 100% rename from product_docs/docs/epas/14/ecpgplus_guide/03_using_embedded_sql.mdx rename to product_docs/docs/epas/15/ecpgplus_guide/03_using_embedded_sql.mdx diff --git a/product_docs/docs/epas/14/ecpgplus_guide/04_using_descriptors.mdx b/product_docs/docs/epas/15/ecpgplus_guide/04_using_descriptors.mdx similarity index 100% rename from product_docs/docs/epas/14/ecpgplus_guide/04_using_descriptors.mdx rename to product_docs/docs/epas/15/ecpgplus_guide/04_using_descriptors.mdx diff --git a/product_docs/docs/epas/14/ecpgplus_guide/05_building_executing_dynamic_sql_statements.mdx b/product_docs/docs/epas/15/ecpgplus_guide/05_building_executing_dynamic_sql_statements.mdx similarity index 100% rename from product_docs/docs/epas/14/ecpgplus_guide/05_building_executing_dynamic_sql_statements.mdx rename to product_docs/docs/epas/15/ecpgplus_guide/05_building_executing_dynamic_sql_statements.mdx diff --git a/product_docs/docs/epas/14/ecpgplus_guide/06_error_handling.mdx b/product_docs/docs/epas/15/ecpgplus_guide/06_error_handling.mdx similarity index 100% rename from product_docs/docs/epas/14/ecpgplus_guide/06_error_handling.mdx rename to product_docs/docs/epas/15/ecpgplus_guide/06_error_handling.mdx diff --git a/product_docs/docs/epas/14/ecpgplus_guide/07_reference.mdx b/product_docs/docs/epas/15/ecpgplus_guide/07_reference.mdx similarity index 100% rename from product_docs/docs/epas/14/ecpgplus_guide/07_reference.mdx rename to product_docs/docs/epas/15/ecpgplus_guide/07_reference.mdx diff --git a/product_docs/docs/epas/14/ecpgplus_guide/images/ecpg_path.png b/product_docs/docs/epas/15/ecpgplus_guide/images/ecpg_path.png similarity index 100% rename from product_docs/docs/epas/14/ecpgplus_guide/images/ecpg_path.png rename to product_docs/docs/epas/15/ecpgplus_guide/images/ecpg_path.png diff --git a/product_docs/docs/epas/14/ecpgplus_guide/images/edb_logo.png b/product_docs/docs/epas/15/ecpgplus_guide/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/ecpgplus_guide/images/edb_logo.png rename to product_docs/docs/epas/15/ecpgplus_guide/images/edb_logo.png diff --git a/product_docs/docs/epas/14/ecpgplus_guide/images/edb_logo.svg b/product_docs/docs/epas/15/ecpgplus_guide/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/ecpgplus_guide/images/edb_logo.svg rename to product_docs/docs/epas/15/ecpgplus_guide/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/ecpgplus_guide/index.mdx b/product_docs/docs/epas/15/ecpgplus_guide/index.mdx similarity index 100% rename from product_docs/docs/epas/14/ecpgplus_guide/index.mdx rename to product_docs/docs/epas/15/ecpgplus_guide/index.mdx diff --git a/product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/E.ico b/product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/E.ico similarity index 100% rename from product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/E.ico rename to product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/E.ico diff --git a/product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/EDB_logo.png b/product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/EDB_logo.png similarity index 100% rename from product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/EDB_logo.png rename to product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/EDB_logo.png diff --git a/product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/connect_to_epas_server.png b/product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/connect_to_epas_server.png similarity index 100% rename from product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/connect_to_epas_server.png rename to product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/connect_to_epas_server.png diff --git a/product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/edb_logo.svg b/product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/edb_logo.svg rename to product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/edb_pgadmin4_first_look.png b/product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/edb_pgadmin4_first_look.png similarity index 100% rename from product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/edb_pgadmin4_first_look.png rename to product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/edb_pgadmin4_first_look.png diff --git a/product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/pgadmin4_from_applications_menu.png b/product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/pgadmin4_from_applications_menu.png similarity index 100% rename from product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/pgadmin4_from_applications_menu.png rename to product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/pgadmin4_from_applications_menu.png diff --git a/product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/server_general.png b/product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/server_general.png similarity index 100% rename from product_docs/docs/epas/14/edb_pgadmin_linux_qs/images/server_general.png rename to product_docs/docs/epas/15/edb_pgadmin_linux_qs/images/server_general.png diff --git a/product_docs/docs/epas/14/edb_pgadmin_linux_qs/index.mdx b/product_docs/docs/epas/15/edb_pgadmin_linux_qs/index.mdx similarity index 100% rename from product_docs/docs/epas/14/edb_pgadmin_linux_qs/index.mdx rename to product_docs/docs/epas/15/edb_pgadmin_linux_qs/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/01_package_components.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01_package_components.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/01_package_components.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01_package_components.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/02_creating_packages.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/02_creating_packages.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/02_creating_packages.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/02_creating_packages.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/03_referencing_a_package.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/03_referencing_a_package.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/03_referencing_a_package.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/03_referencing_a_package.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/04_using_packages_with_user_defined_types.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/04_using_packages_with_user_defined_types.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/04_using_packages_with_user_defined_types.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/04_using_packages_with_user_defined_types.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/05_dropping_a_package.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/05_dropping_a_package.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/05_dropping_a_package.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/05_dropping_a_package.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/01_dbms_alert.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/01_dbms_alert.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/01_dbms_alert.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/01_dbms_alert.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/01_enqueue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/01_enqueue.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/01_enqueue.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/01_enqueue.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/02_dequeue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/02_dequeue.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/02_dequeue.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/02_dequeue.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/03_register.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/03_register.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/03_register.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/03_register.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/04_unregister.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/04_unregister.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/04_unregister.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/04_unregister.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/01_alter_queue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/01_alter_queue.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/01_alter_queue.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/01_alter_queue.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/02_alter_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/02_alter_queue_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/02_alter_queue_table.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/02_alter_queue_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/03_create_queue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/03_create_queue.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/03_create_queue.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/03_create_queue.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/04_create_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/04_create_queue_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/04_create_queue_table.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/04_create_queue_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/05_drop_queue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/05_drop_queue.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/05_drop_queue.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/05_drop_queue.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/06_drop_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/06_drop_queue_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/06_drop_queue_table.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/06_drop_queue_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/07_purge_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/07_purge_queue_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/07_purge_queue_table.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/07_purge_queue_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/08_start_queue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/08_start_queue.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/08_start_queue.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/08_start_queue.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/09_stop_queue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/09_stop_queue.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/09_stop_queue.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/09_stop_queue.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/01_decrypt.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/01_decrypt.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/01_decrypt.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/01_decrypt.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/02_encrypt.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/02_encrypt.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/02_encrypt.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/02_encrypt.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/03_hash.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/03_hash.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/03_hash.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/03_hash.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/04_mac.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/04_mac.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/04_mac.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/04_mac.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/05_randombytes.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/05_randombytes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/05_randombytes.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/05_randombytes.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/06_randominteger.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/06_randominteger.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/06_randominteger.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/06_randominteger.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/07_randomnumber.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/07_randomnumber.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/07_randomnumber.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/07_randomnumber.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/01_broken.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/01_broken.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/01_broken.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/01_broken.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/02_change.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/02_change.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/02_change.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/02_change.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/03_interval.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/03_interval.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/03_interval.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/03_interval.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/04_next_date.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/04_next_date.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/04_next_date.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/04_next_date.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/05_remove.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/05_remove.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/05_remove.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/05_remove.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/06_run.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/06_run.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/06_run.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/06_run.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/07_submit.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/07_submit.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/07_submit.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/07_submit.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/08_what.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/08_what.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/08_what.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/08_what.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/01_append.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/01_append.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/01_append.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/01_append.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/02_compare.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/02_compare.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/02_compare.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/02_compare.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/03_converttoblob.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/03_converttoblob.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/03_converttoblob.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/03_converttoblob.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/04_converttoclob.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/04_converttoclob.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/04_converttoclob.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/04_converttoclob.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/05_copy.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/05_copy.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/05_copy.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/05_copy.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/06_erase.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/06_erase.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/06_erase.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/06_erase.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/07_get_storage_limit.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/07_get_storage_limit.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/07_get_storage_limit.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/07_get_storage_limit.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/08_getlength.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/08_getlength.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/08_getlength.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/08_getlength.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/09_instr.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/09_instr.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/09_instr.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/09_instr.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/10_read.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/10_read.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/10_read.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/10_read.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/11_substr.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/11_substr.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/11_substr.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/11_substr.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/12_trim.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/12_trim.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/12_trim.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/12_trim.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/13_write.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/13_write.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/13_write.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/13_write.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/14_writeappend.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/14_writeappend.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/14_writeappend.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/14_writeappend.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/07_dbms_lock.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/07_dbms_lock.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/07_dbms_lock.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/07_dbms_lock.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/01_get_mv_dependencies.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/01_get_mv_dependencies.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/01_get_mv_dependencies.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/01_get_mv_dependencies.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/02_refresh.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/02_refresh.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/02_refresh.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/02_refresh.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/03_refresh_all_mviews.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/03_refresh_all_mviews.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/03_refresh_all_mviews.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/03_refresh_all_mviews.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/04_refresh_dependent.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/04_refresh_dependent.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/04_refresh_dependent.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/04_refresh_dependent.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/09_dbms_output.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/09_dbms_output.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/09_dbms_output.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/09_dbms_output.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/01_create_pipe.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/01_create_pipe.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/01_create_pipe.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/01_create_pipe.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/02_next_item_pipe.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/02_next_item_pipe.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/02_next_item_pipe.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/02_next_item_pipe.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/03_pack_message.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/03_pack_message.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/03_pack_message.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/03_pack_message.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/04_purge.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/04_purge.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/04_purge.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/04_purge.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/05_receive_message.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/05_receive_message.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/05_receive_message.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/05_receive_message.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/06_remove_pipe.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/06_remove_pipe.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/06_remove_pipe.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/06_remove_pipe.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/07_reset_buffer.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/07_reset_buffer.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/07_reset_buffer.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/07_reset_buffer.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/08_send_message.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/08_send_message.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/08_send_message.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/08_send_message.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/09_unique_session_name.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/09_unique_session_name.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/09_unique_session_name.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/09_unique_session_name.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/10_unpack_message.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/10_unpack_message.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/10_unpack_message.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/10_unpack_message.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/11_comprehensive_example.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/11_comprehensive_example.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/11_comprehensive_example.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/11_comprehensive_example.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/11_dbms_profiler.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/11_dbms_profiler.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/11_dbms_profiler.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/11_dbms_profiler.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/12_dbms_random.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/12_dbms_random.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/12_dbms_random.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/12_dbms_random.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/13_dbms_redact.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/13_dbms_redact.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/13_dbms_redact.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/13_dbms_redact.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/14_dbms_rls.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/14_dbms_rls.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/14_dbms_rls.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/14_dbms_rls.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/01_using_calendar_syntax_to_specify_a_repeating_interval.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/01_using_calendar_syntax_to_specify_a_repeating_interval.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/01_using_calendar_syntax_to_specify_a_repeating_interval.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/01_using_calendar_syntax_to_specify_a_repeating_interval.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/02_create_job.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/02_create_job.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/02_create_job.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/02_create_job.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/03_create_program.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/03_create_program.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/03_create_program.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/03_create_program.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/04_create_schedule.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/04_create_schedule.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/04_create_schedule.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/04_create_schedule.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/05_define_program_argument.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/05_define_program_argument.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/05_define_program_argument.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/05_define_program_argument.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/06_dbms_scheduler_disable.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/06_dbms_scheduler_disable.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/06_dbms_scheduler_disable.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/06_dbms_scheduler_disable.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/07_drop_job.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/07_drop_job.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/07_drop_job.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/07_drop_job.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/08_drop_program.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/08_drop_program.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/08_drop_program.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/08_drop_program.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/09_drop_program_argument.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/09_drop_program_argument.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/09_drop_program_argument.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/09_drop_program_argument.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/10_drop_schedule.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/10_drop_schedule.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/10_drop_schedule.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/10_drop_schedule.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/11_dbms_scheduler_enable.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/11_dbms_scheduler_enable.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/11_dbms_scheduler_enable.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/11_dbms_scheduler_enable.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/12_evaluate_calendar_string.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/12_evaluate_calendar_string.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/12_evaluate_calendar_string.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/12_evaluate_calendar_string.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/13_run_job.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/13_run_job.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/13_run_job.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/13_run_job.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/14_set_job_argument_value.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/14_set_job_argument_value.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/14_set_job_argument_value.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/14_set_job_argument_value.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/16_dbms_session.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/16_dbms_session.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/16_dbms_session.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/16_dbms_session.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/01_bind_variable.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/01_bind_variable.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/01_bind_variable.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/01_bind_variable.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/02_bind_variable_char.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/02_bind_variable_char.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/02_bind_variable_char.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/02_bind_variable_char.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/03_bind_variable_raw.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/03_bind_variable_raw.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/03_bind_variable_raw.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/03_bind_variable_raw.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/04_close_cursor.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/04_close_cursor.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/04_close_cursor.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/04_close_cursor.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/05_column_value.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/05_column_value.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/05_column_value.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/05_column_value.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/06_column_value_char.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/06_column_value_char.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/06_column_value_char.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/06_column_value_char.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/07_column_value_raw.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/07_column_value_raw.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/07_column_value_raw.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/07_column_value_raw.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/08_define_column.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/08_define_column.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/08_define_column.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/08_define_column.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/09_define_column_char.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/09_define_column_char.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/09_define_column_char.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/09_define_column_char.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/10_define_column_raw.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/10_define_column_raw.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/10_define_column_raw.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/10_define_column_raw.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/11_describe_columns.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/11_describe_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/11_describe_columns.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/11_describe_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/12_execute.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/12_execute.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/12_execute.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/12_execute.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/13_execute_and_fetch.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/13_execute_and_fetch.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/13_execute_and_fetch.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/13_execute_and_fetch.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/14_fetch_rows.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/14_fetch_rows.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/14_fetch_rows.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/14_fetch_rows.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/15_is_open.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/15_is_open.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/15_is_open.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/15_is_open.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/16_last_row_count.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/16_last_row_count.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/16_last_row_count.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/16_last_row_count.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/17_open_cursor.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/17_open_cursor.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/17_open_cursor.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/17_open_cursor.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/18_parse.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/18_parse.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/18_parse.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/18_parse.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/01_base64_decode.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/01_base64_decode.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/01_base64_decode.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/01_base64_decode.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/02_base64_encode.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/02_base64_encode.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/02_base64_encode.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/02_base64_encode.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/03_mimeheader_decode.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/03_mimeheader_decode.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/03_mimeheader_decode.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/03_mimeheader_decode.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/04_mimeheader_encode.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/04_mimeheader_encode.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/04_mimeheader_encode.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/04_mimeheader_encode.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/05_quoted_printable_decode.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/05_quoted_printable_decode.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/05_quoted_printable_decode.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/05_quoted_printable_decode.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/06_quoted_printable_encode.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/06_quoted_printable_encode.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/06_quoted_printable_encode.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/06_quoted_printable_encode.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/07_text_decode.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/07_text_decode.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/07_text_decode.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/07_text_decode.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/08_text_encode.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/08_text_encode.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/08_text_encode.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/08_text_encode.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/09_uudecode.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/09_uudecode.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/09_uudecode.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/09_uudecode.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/10_uuencode.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/10_uuencode.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/10_uuencode.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/10_uuencode.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/19_utl_encode/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/20_utl_file.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/20_utl_file.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/20_utl_file.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/20_utl_file.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/21_utl_http.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/21_utl_http.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/21_utl_http.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/21_utl_http.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/22_utl_mail.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/22_utl_mail.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/22_utl_mail.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/22_utl_mail.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/23_utl_raw.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/23_utl_raw.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/23_utl_raw.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/23_utl_raw.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/24_utl_smtp.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/24_utl_smtp.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/24_utl_smtp.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/24_utl_smtp.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/25_utl_url.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/25_utl_url.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/25_utl_url.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/25_utl_url.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/03_built-in_packages/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/images/EDB_logo.png b/product_docs/docs/epas/15/epas_compat_bip_guide/images/EDB_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/images/EDB_logo.png rename to product_docs/docs/epas/15/epas_compat_bip_guide/images/EDB_logo.png diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/images/edb_logo.svg b/product_docs/docs/epas/15/epas_compat_bip_guide/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_compat_bip_guide/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/images/edblogo.png b/product_docs/docs/epas/15/epas_compat_bip_guide/images/edblogo.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/images/edblogo.png rename to product_docs/docs/epas/15/epas_compat_bip_guide/images/edblogo.png diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/images/image2.png b/product_docs/docs/epas/15/epas_compat_bip_guide/images/image2.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/images/image2.png rename to product_docs/docs/epas/15/epas_compat_bip_guide/images/image2.png diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/images/media/image2.png b/product_docs/docs/epas/15/epas_compat_bip_guide/images/media/image2.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/images/media/image2.png rename to product_docs/docs/epas/15/epas_compat_bip_guide/images/media/image2.png diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/index.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/images/edb_logo.png b/product_docs/docs/epas/15/epas_compat_cat_views/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/images/edb_logo.png rename to product_docs/docs/epas/15/epas_compat_cat_views/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/images/edb_logo.svg b/product_docs/docs/epas/15/epas_compat_cat_views/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_compat_cat_views/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/index.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/index.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/02_all_all_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/02_all_all_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/02_all_all_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/02_all_all_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/03_all_cons_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/03_all_cons_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/03_all_cons_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/03_all_cons_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/04_all_constraints.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/04_all_constraints.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/04_all_constraints.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/04_all_constraints.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/05_all_col_privs.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/05_all_col_privs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/05_all_col_privs.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/05_all_col_privs.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/06_all_db_links.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/06_all_db_links.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/06_all_db_links.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/06_all_db_links.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/07_all_dependencies.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/07_all_dependencies.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/07_all_dependencies.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/07_all_dependencies.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/08_all_directories.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/08_all_directories.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/08_all_directories.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/08_all_directories.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/09_all_ind_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/09_all_ind_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/09_all_ind_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/09_all_ind_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/10_all_indexes.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/10_all_indexes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/10_all_indexes.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/10_all_indexes.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/11_all_jobs.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/11_all_jobs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/11_all_jobs.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/11_all_jobs.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/12_all_objects.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/12_all_objects.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/12_all_objects.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/12_all_objects.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/13_all_part_key_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/13_all_part_key_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/13_all_part_key_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/13_all_part_key_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/14_all_part_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/14_all_part_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/14_all_part_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/14_all_part_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/15_all_policies.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/15_all_policies.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/15_all_policies.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/15_all_policies.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/16_all_queues.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/16_all_queues.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/16_all_queues.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/16_all_queues.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/17_all_queue_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/17_all_queue_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/17_all_queue_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/17_all_queue_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/18_all_sequences.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/18_all_sequences.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/18_all_sequences.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/18_all_sequences.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/19_all_source.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/19_all_source.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/19_all_source.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/19_all_source.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/20_all_subpart_key_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/20_all_subpart_key_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/20_all_subpart_key_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/20_all_subpart_key_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/21_all_synonyms.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/21_all_synonyms.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/21_all_synonyms.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/21_all_synonyms.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/22_all_tab_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/22_all_tab_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/22_all_tab_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/22_all_tab_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/23_all_tab_partitions.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/23_all_tab_partitions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/23_all_tab_partitions.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/23_all_tab_partitions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/24_all_tab_subpartitions.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/24_all_tab_subpartitions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/24_all_tab_subpartitions.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/24_all_tab_subpartitions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/25_all_tab_privs.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/25_all_tab_privs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/25_all_tab_privs.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/25_all_tab_privs.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/26_all_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/26_all_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/26_all_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/26_all_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/27_all_triggers.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/27_all_triggers.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/27_all_triggers.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/27_all_triggers.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/28_all_types.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/28_all_types.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/28_all_types.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/28_all_types.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/29_all_users.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/29_all_users.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/29_all_users.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/29_all_users.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/30_all_view_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/30_all_view_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/30_all_view_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/30_all_view_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/31_all_views.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/31_all_views.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/31_all_views.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/31_all_views.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/32_dba_all_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/32_dba_all_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/32_dba_all_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/32_dba_all_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/33_dba_cons_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/33_dba_cons_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/33_dba_cons_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/33_dba_cons_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/34_dba_constraints.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/34_dba_constraints.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/34_dba_constraints.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/34_dba_constraints.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/35_dba_col_privs.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/35_dba_col_privs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/35_dba_col_privs.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/35_dba_col_privs.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/36_dba_db_links.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/36_dba_db_links.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/36_dba_db_links.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/36_dba_db_links.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/37_dba_directories.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/37_dba_directories.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/37_dba_directories.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/37_dba_directories.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/38_dba_dependencies.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/38_dba_dependencies.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/38_dba_dependencies.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/38_dba_dependencies.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/39_dba_ind_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/39_dba_ind_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/39_dba_ind_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/39_dba_ind_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/40_dba_indexes.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/40_dba_indexes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/40_dba_indexes.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/40_dba_indexes.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/41_dba_jobs.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/41_dba_jobs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/41_dba_jobs.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/41_dba_jobs.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/42_dba_objects.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/42_dba_objects.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/42_dba_objects.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/42_dba_objects.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/43_dba_part_key_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/43_dba_part_key_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/43_dba_part_key_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/43_dba_part_key_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/44_dba_part_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/44_dba_part_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/44_dba_part_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/44_dba_part_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/45_dba_policies.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/45_dba_policies.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/45_dba_policies.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/45_dba_policies.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/46_dba_profiles.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/46_dba_profiles.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/46_dba_profiles.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/46_dba_profiles.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/47_dba_queues.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/47_dba_queues.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/47_dba_queues.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/47_dba_queues.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/48_dba_queue_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/48_dba_queue_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/48_dba_queue_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/48_dba_queue_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/49_dba_role_privs.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/49_dba_role_privs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/49_dba_role_privs.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/49_dba_role_privs.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/50_dba_roles.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/50_dba_roles.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/50_dba_roles.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/50_dba_roles.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/51_dba_sequences.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/51_dba_sequences.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/51_dba_sequences.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/51_dba_sequences.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/52_dba_source.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/52_dba_source.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/52_dba_source.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/52_dba_source.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/53_dba_subpart_key_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/53_dba_subpart_key_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/53_dba_subpart_key_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/53_dba_subpart_key_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/54_dba_synonyms.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/54_dba_synonyms.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/54_dba_synonyms.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/54_dba_synonyms.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/55_dba_tab_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/55_dba_tab_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/55_dba_tab_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/55_dba_tab_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/56_dba_tab_partitions.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/56_dba_tab_partitions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/56_dba_tab_partitions.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/56_dba_tab_partitions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/57_dba_tab_subpartitions.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/57_dba_tab_subpartitions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/57_dba_tab_subpartitions.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/57_dba_tab_subpartitions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/58_dba_tab_privs.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/58_dba_tab_privs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/58_dba_tab_privs.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/58_dba_tab_privs.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/59_dba_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/59_dba_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/59_dba_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/59_dba_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/60_dba_triggers.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/60_dba_triggers.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/60_dba_triggers.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/60_dba_triggers.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/61_dba_types.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/61_dba_types.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/61_dba_types.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/61_dba_types.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/62_dba_users.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/62_dba_users.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/62_dba_users.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/62_dba_users.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/63_dba_view_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/63_dba_view_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/63_dba_view_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/63_dba_view_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/64_dba_views.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/64_dba_views.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/64_dba_views.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/64_dba_views.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/65_user_all_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/65_user_all_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/65_user_all_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/65_user_all_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/66_user_cons_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/66_user_cons_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/66_user_cons_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/66_user_cons_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/67_user_constraints.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/67_user_constraints.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/67_user_constraints.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/67_user_constraints.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/68_user_col_privs.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/68_user_col_privs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/68_user_col_privs.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/68_user_col_privs.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/69_user_db_links.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/69_user_db_links.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/69_user_db_links.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/69_user_db_links.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/70_user_dependencies.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/70_user_dependencies.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/70_user_dependencies.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/70_user_dependencies.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/71_user_indexes.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/71_user_indexes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/71_user_indexes.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/71_user_indexes.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/72_user_jobs.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/72_user_jobs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/72_user_jobs.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/72_user_jobs.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/73_user_objects.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/73_user_objects.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/73_user_objects.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/73_user_objects.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/74_user_part_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/74_user_part_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/74_user_part_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/74_user_part_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/75_user_policies.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/75_user_policies.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/75_user_policies.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/75_user_policies.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/76_user_queues.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/76_user_queues.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/76_user_queues.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/76_user_queues.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/77_user_queue_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/77_user_queue_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/77_user_queue_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/77_user_queue_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/78_user_role_privs.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/78_user_role_privs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/78_user_role_privs.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/78_user_role_privs.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/79_user_sequences.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/79_user_sequences.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/79_user_sequences.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/79_user_sequences.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/80_user_source.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/80_user_source.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/80_user_source.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/80_user_source.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/81_user_subpart_key_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/81_user_subpart_key_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/81_user_subpart_key_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/81_user_subpart_key_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/82_user_synonyms.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/82_user_synonyms.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/82_user_synonyms.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/82_user_synonyms.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/83_user_tab_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/83_user_tab_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/83_user_tab_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/83_user_tab_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/84_user_tab_partitions.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/84_user_tab_partitions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/84_user_tab_partitions.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/84_user_tab_partitions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/85_user_tab_subpartitions.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/85_user_tab_subpartitions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/85_user_tab_subpartitions.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/85_user_tab_subpartitions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/86_user_tab_privs.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/86_user_tab_privs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/86_user_tab_privs.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/86_user_tab_privs.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/87_user_tables.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/87_user_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/87_user_tables.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/87_user_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/88_user_triggers.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/88_user_triggers.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/88_user_triggers.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/88_user_triggers.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/89_user_types.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/89_user_types.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/89_user_types.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/89_user_types.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/90_user_users.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/90_user_users.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/90_user_users.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/90_user_users.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/91_user_view_columns.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/91_user_view_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/91_user_view_columns.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/91_user_view_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/92_user_views.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/92_user_views.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/92_user_views.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/92_user_views.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/93_v_version.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/93_v_version.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/93_v_version.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/93_v_version.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/94_product_component_version.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/94_product_component_version.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/94_product_component_version.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/94_product_component_version.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/index.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/oracle_compatible_views/index.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/oracle_compatible_views/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/pg_views/index.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/pg_views/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/pg_views/index.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/pg_views/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_cat_views/pg_views/pg_user.mdx b/product_docs/docs/epas/15/epas_compat_cat_views/pg_views/pg_user.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_cat_views/pg_views/pg_user.mdx rename to product_docs/docs/epas/15/epas_compat_cat_views/pg_views/pg_user.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/01_edb_redwood_date.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/01_edb_redwood_date.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/01_edb_redwood_date.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/01_edb_redwood_date.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/02_edb_redwood_raw_names.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/02_edb_redwood_raw_names.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/02_edb_redwood_raw_names.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/02_edb_redwood_raw_names.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/03_edb_redwood_strings.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/03_edb_redwood_strings.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/03_edb_redwood_strings.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/03_edb_redwood_strings.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/04_edb_stmt_level_tx.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/04_edb_stmt_level_tx.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/04_edb_stmt_level_tx.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/04_edb_stmt_level_tx.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/05_oracle_home.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/05_oracle_home.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/05_oracle_home.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/05_oracle_home.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/01_introduction/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/01_introduction/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_about_the_examples_used_in_this_guide.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_about_the_examples_used_in_this_guide.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_about_the_examples_used_in_this_guide.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_about_the_examples_used_in_this_guide.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/01_sample_database_installation.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/01_sample_database_installation.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/01_sample_database_installation.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/01_sample_database_installation.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/02_sample_database_description.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/02_sample_database_description.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/02_sample_database_description.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/02_sample_database_description.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/01_sample_database/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/02_creating_a_new_table.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/02_creating_a_new_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/02_creating_a_new_table.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/02_creating_a_new_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/03_populating_a_table_with_rows.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/03_populating_a_table_with_rows.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/03_populating_a_table_with_rows.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/03_populating_a_table_with_rows.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/04_querying_a_table.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/04_querying_a_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/04_querying_a_table.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/04_querying_a_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/05_joins_between_tables.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/05_joins_between_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/05_joins_between_tables.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/05_joins_between_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/06_aggregate_functions.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/06_aggregate_functions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/06_aggregate_functions.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/06_aggregate_functions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/07_updates.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/07_updates.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/07_updates.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/07_updates.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/08_deletions.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/08_deletions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/08_deletions.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/08_deletions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/09_the_sql_language.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/09_the_sql_language.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/09_the_sql_language.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/09_the_sql_language.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/02_sql_tutorial/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/02_sql_tutorial/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/01_views.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/01_views.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/01_views.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/01_views.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/02_foreign_keys.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/02_foreign_keys.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/02_foreign_keys.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/02_foreign_keys.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/03_the_rownum_pseudo_column.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/03_the_rownum_pseudo_column.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/03_the_rownum_pseudo_column.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/03_the_rownum_pseudo_column.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/04_synonyms.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/04_synonyms.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/04_synonyms.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/04_synonyms.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/01_defining_the_parent_child_relationship.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/01_defining_the_parent_child_relationship.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/01_defining_the_parent_child_relationship.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/01_defining_the_parent_child_relationship.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/02_selecting_the_root_nodes.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/02_selecting_the_root_nodes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/02_selecting_the_root_nodes.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/02_selecting_the_root_nodes.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/03_organization_tree_in_the_sample_application.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/03_organization_tree_in_the_sample_application.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/03_organization_tree_in_the_sample_application.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/03_organization_tree_in_the_sample_application.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/04_node_level.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/04_node_level.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/04_node_level.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/04_node_level.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/05_ordering_the_siblings.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/05_ordering_the_siblings.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/05_ordering_the_siblings.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/05_ordering_the_siblings.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/06_retrieving_the_root_node_with_connect_by_root.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/06_retrieving_the_root_node_with_connect_by_root.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/06_retrieving_the_root_node_with_connect_by_root.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/06_retrieving_the_root_node_with_connect_by_root.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/07_retrieving_a_path_with_sys_connect_by_path.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/07_retrieving_a_path_with_sys_connect_by_path.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/07_retrieving_a_path_with_sys_connect_by_path.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/07_retrieving_a_path_with_sys_connect_by_path.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/05_hierarchical_queries/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/01_rollup_extension.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/01_rollup_extension.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/01_rollup_extension.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/01_rollup_extension.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/02_cube_extension.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/02_cube_extension.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/02_cube_extension.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/02_cube_extension.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/03_grouping_sets_extension.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/03_grouping_sets_extension.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/03_grouping_sets_extension.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/03_grouping_sets_extension.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/04_grouping_function.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/04_grouping_function.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/04_grouping_function.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/04_grouping_function.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/05_grouping_id_function.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/05_grouping_id_function.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/05_grouping_id_function.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/05_grouping_id_function.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/06_multidimensional_analysis/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/03_advanced_concepts/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/03_advanced_concepts/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/01_creating_a_new_profile/01_creating_a_password_function.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/01_creating_a_new_profile/01_creating_a_password_function.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/01_creating_a_new_profile/01_creating_a_password_function.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/01_creating_a_new_profile/01_creating_a_password_function.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/01_creating_a_new_profile/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/01_creating_a_new_profile/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/01_creating_a_new_profile/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/01_creating_a_new_profile/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/02_altering_a_profile.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/02_altering_a_profile.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/02_altering_a_profile.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/02_altering_a_profile.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/03_dropping_a_profile.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/03_dropping_a_profile.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/03_dropping_a_profile.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/03_dropping_a_profile.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/04_associating_a_profile_with_an_existing_role.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/04_associating_a_profile_with_an_existing_role.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/04_associating_a_profile_with_an_existing_role.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/04_associating_a_profile_with_an_existing_role.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/05_unlocking_a_locked_account.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/05_unlocking_a_locked_account.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/05_unlocking_a_locked_account.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/05_unlocking_a_locked_account.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/06_creating_a_new_role_associated_with_a_profile.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/06_creating_a_new_role_associated_with_a_profile.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/06_creating_a_new_role_associated_with_a_profile.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/06_creating_a_new_role_associated_with_a_profile.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/07_backing_up_profile_management_functions.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/07_backing_up_profile_management_functions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/07_backing_up_profile_management_functions.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/07_backing_up_profile_management_functions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/04_profile_management/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/04_profile_management/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/01_default_optimization_modes.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/01_default_optimization_modes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/01_default_optimization_modes.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/01_default_optimization_modes.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/03_specifying_a_join_order.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/03_specifying_a_join_order.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/03_specifying_a_join_order.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/03_specifying_a_join_order.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/04_joining_relations_hints.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/04_joining_relations_hints.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/04_joining_relations_hints.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/04_joining_relations_hints.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/05_global_hints.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/05_global_hints.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/05_global_hints.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/05_global_hints.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/06_using_the_append_optimizer_hint.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/06_using_the_append_optimizer_hint.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/06_using_the_append_optimizer_hint.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/06_using_the_append_optimizer_hint.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/07_parallelism_hints.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/07_parallelism_hints.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/07_parallelism_hints.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/07_parallelism_hints.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/08_conflicting_hints.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/08_conflicting_hints.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/08_conflicting_hints.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/08_conflicting_hints.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/05_optimizer_hints/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/01_dblink_ora_connect.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/01_dblink_ora_connect.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/01_dblink_ora_connect.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/01_dblink_ora_connect.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/02_dblink_ora_status.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/02_dblink_ora_status.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/02_dblink_ora_status.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/02_dblink_ora_status.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/03_dblink_ora_disconnect.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/03_dblink_ora_disconnect.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/03_dblink_ora_disconnect.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/03_dblink_ora_disconnect.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/04_dblink_ora_record.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/04_dblink_ora_record.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/04_dblink_ora_record.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/04_dblink_ora_record.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/05_dblink_ora_call.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/05_dblink_ora_call.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/05_dblink_ora_call.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/05_dblink_ora_call.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/06_dblink_ora_exec.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/06_dblink_ora_exec.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/06_dblink_ora_exec.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/06_dblink_ora_exec.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/07_dblink_ora_copy.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/07_dblink_ora_copy.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/07_dblink_ora_copy.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/07_dblink_ora_copy.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/02_calling_dblink_ora_functions.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/02_calling_dblink_ora_functions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/02_calling_dblink_ora_functions.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/02_calling_dblink_ora_functions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/06_dblink_ora/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/07_open_client_library.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/07_open_client_library.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/07_open_client_library.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/07_open_client_library.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/08_oracle_catalog_views.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/08_oracle_catalog_views.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/08_oracle_catalog_views.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/08_oracle_catalog_views.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/09_tools_and_utilities.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/09_tools_and_utilities.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/09_tools_and_utilities.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/09_tools_and_utilities.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/10_ecpgplus.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/10_ecpgplus.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/10_ecpgplus.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/10_ecpgplus.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/11_system_catalog_tables.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/11_system_catalog_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/11_system_catalog_tables.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/11_system_catalog_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/definer's_rights_package.png b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/definer's_rights_package.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/definer's_rights_package.png rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/definer's_rights_package.png diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/definers_rights_package.png b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/definers_rights_package.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/definers_rights_package.png rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/definers_rights_package.png diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/edb_logo.png b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/edb_logo.png rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/edb_logo.svg b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/edb_postgres.png b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/edb_postgres.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/edb_postgres.png rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/edb_postgres.png diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/employee_organization_hierarchy.png b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/employee_organization_hierarchy.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/employee_organization_hierarchy.png rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/employee_organization_hierarchy.png diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/invokers_rights_programs.png b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/invokers_rights_programs.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/invokers_rights_programs.png rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/invokers_rights_programs.png diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/open_client_library.png b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/open_client_library.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/open_client_library.png rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/open_client_library.png diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/sample_database_tables.png b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/sample_database_tables.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/images/sample_database_tables.png rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/images/sample_database_tables.png diff --git a/product_docs/docs/epas/14/epas_compat_ora_dev_guide/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_ora_dev_guide/index.mdx rename to product_docs/docs/epas/15/epas_compat_ora_dev_guide/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/01_sql_syntax/01_lexical_structure.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/01_lexical_structure.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/01_sql_syntax/01_lexical_structure.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/01_lexical_structure.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/01_sql_syntax/02_identifiers_and_key_words.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/02_identifiers_and_key_words.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/01_sql_syntax/02_identifiers_and_key_words.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/02_identifiers_and_key_words.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/01_sql_syntax/03_constants.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/03_constants.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/01_sql_syntax/03_constants.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/03_constants.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/01_sql_syntax/04_comments.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/04_comments.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/01_sql_syntax/04_comments.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/04_comments.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/01_sql_syntax/index.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/01_sql_syntax/index.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/01_numeric_types.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/01_numeric_types.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/01_numeric_types.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/01_numeric_types.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/02_character_types.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/02_character_types.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/02_character_types.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/02_character_types.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/03_binary_data.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/03_binary_data.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/03_binary_data.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/03_binary_data.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/04_date_time_types.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/04_date_time_types.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/04_date_time_types.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/04_date_time_types.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/05_boolean_type.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/05_boolean_type.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/05_boolean_type.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/05_boolean_type.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/06_xml_type.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/06_xml_type.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/06_xml_type.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/06_xml_type.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/index.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/02_data_types/index.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/01_logical_operators.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/01_logical_operators.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/01_logical_operators.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/01_logical_operators.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/02_comparison_operators.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/02_comparison_operators.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/02_comparison_operators.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/02_comparison_operators.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/03_mathematical_functions_and_operators.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/03_mathematical_functions_and_operators.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/03_mathematical_functions_and_operators.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/03_mathematical_functions_and_operators.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/04_string_functions_and_operators.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/04_string_functions_and_operators.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/04_string_functions_and_operators.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/04_string_functions_and_operators.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/05_pattern_matching_string_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/05_pattern_matching_string_functions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/05_pattern_matching_string_functions.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/05_pattern_matching_string_functions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/06_pattern_matching_using_the_like_operator.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/06_pattern_matching_using_the_like_operator.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/06_pattern_matching_using_the_like_operator.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/06_pattern_matching_using_the_like_operator.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/09_sequence_manipulation_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/09_sequence_manipulation_functions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/09_sequence_manipulation_functions.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/09_sequence_manipulation_functions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/10_conditional_expressions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/10_conditional_expressions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/10_conditional_expressions.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/10_conditional_expressions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/11_aggregate_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/11_aggregate_functions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/11_aggregate_functions.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/11_aggregate_functions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/12_subquery_expressions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/12_subquery_expressions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/12_subquery_expressions.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/12_subquery_expressions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/13_identifier_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/13_identifier_functions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/13_identifier_functions.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/13_identifier_functions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/14_bitwise_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/14_bitwise_functions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/14_bitwise_functions.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/14_bitwise_functions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/index.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/03_functions_and_operators/index.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/index.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/02_the_sql_language/index.mdx rename to product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/03_system_catalog_tables.mdx b/product_docs/docs/epas/15/epas_compat_reference/03_system_catalog_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/03_system_catalog_tables.mdx rename to product_docs/docs/epas/15/epas_compat_reference/03_system_catalog_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_reference/images/edb_logo.png b/product_docs/docs/epas/15/epas_compat_reference/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/images/edb_logo.png rename to product_docs/docs/epas/15/epas_compat_reference/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_compat_reference/images/edb_logo.svg b/product_docs/docs/epas/15/epas_compat_reference/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_compat_reference/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_compat_reference/index.mdx b/product_docs/docs/epas/15/epas_compat_reference/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_reference/index.mdx rename to product_docs/docs/epas/15/epas_compat_reference/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/02_case_sensitivity.mdx b/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/02_case_sensitivity.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/02_case_sensitivity.mdx rename to product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/02_case_sensitivity.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/03_identifiers.mdx b/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/03_identifiers.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/03_identifiers.mdx rename to product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/03_identifiers.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/04_qualifiers.mdx b/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/04_qualifiers.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/04_qualifiers.mdx rename to product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/04_qualifiers.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/05_constants.mdx b/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/05_constants.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/05_constants.mdx rename to product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/05_constants.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/06_user_defined_pl_sql_subtypes.mdx b/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/06_user_defined_pl_sql_subtypes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/06_user_defined_pl_sql_subtypes.mdx rename to product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/06_user_defined_pl_sql_subtypes.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/07_character.mdx b/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/07_character.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/07_character.mdx rename to product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/07_character.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/01_basic_spl_elements/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/02_spl_block_structure.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/02_spl_block_structure.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/02_spl_block_structure.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/02_spl_block_structure.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/03_anonymous_blocks.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/03_anonymous_blocks.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/03_anonymous_blocks.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/03_anonymous_blocks.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/04_procedures_overview/01_creating_a_procedure.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/01_creating_a_procedure.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/04_procedures_overview/01_creating_a_procedure.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/01_creating_a_procedure.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/04_procedures_overview/02_calling_a_procedure.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/02_calling_a_procedure.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/04_procedures_overview/02_calling_a_procedure.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/02_calling_a_procedure.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/04_procedures_overview/03_deleting_a_procedure.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/03_deleting_a_procedure.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/04_procedures_overview/03_deleting_a_procedure.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/03_deleting_a_procedure.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/04_procedures_overview/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/04_procedures_overview/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/05_functions_overview/01_creating_a_function.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/01_creating_a_function.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/05_functions_overview/01_creating_a_function.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/01_creating_a_function.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/05_functions_overview/02_calling_a_function.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/02_calling_a_function.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/05_functions_overview/02_calling_a_function.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/02_calling_a_function.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/05_functions_overview/03_deleting_a_function.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/03_deleting_a_function.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/05_functions_overview/03_deleting_a_function.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/03_deleting_a_function.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/05_functions_overview/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/05_functions_overview/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/01_positional_vs_named_parameter_notation.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/01_positional_vs_named_parameter_notation.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/01_positional_vs_named_parameter_notation.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/01_positional_vs_named_parameter_notation.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/02_parameter_modes.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/02_parameter_modes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/02_parameter_modes.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/02_parameter_modes.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/03_using_default_values_in_parameters.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/03_using_default_values_in_parameters.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/03_using_default_values_in_parameters.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/03_using_default_values_in_parameters.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/01_creating_a_subprocedure.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/01_creating_a_subprocedure.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/01_creating_a_subprocedure.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/01_creating_a_subprocedure.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/02_creating_a_subfunction.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/02_creating_a_subfunction.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/02_creating_a_subfunction.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/02_creating_a_subfunction.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/03_block_relationships.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/03_block_relationships.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/03_block_relationships.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/03_block_relationships.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/04_invoking_subprograms.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/04_invoking_subprograms.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/04_invoking_subprograms.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/04_invoking_subprograms.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/05_using_forward_declarations.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/05_using_forward_declarations.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/05_using_forward_declarations.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/05_using_forward_declarations.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/06_overloading_subprograms.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/06_overloading_subprograms.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/06_overloading_subprograms.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/06_overloading_subprograms.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/07_accessing_subprogram_variables.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/07_accessing_subprogram_variables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/07_accessing_subprogram_variables.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/07_accessing_subprogram_variables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/08_compilation_errors_in_procedures_and_functions.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/08_compilation_errors_in_procedures_and_functions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/08_compilation_errors_in_procedures_and_functions.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/08_compilation_errors_in_procedures_and_functions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/01_execute_privilege.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/01_execute_privilege.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/01_execute_privilege.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/01_execute_privilege.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/02_database_object_name_resolution.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/02_database_object_name_resolution.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/02_database_object_name_resolution.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/02_database_object_name_resolution.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/03_database_object_privileges.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/03_database_object_privileges.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/03_database_object_privileges.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/03_database_object_privileges.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/04_definers_vs_invokers_rights.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/04_definers_vs_invokers_rights.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/04_definers_vs_invokers_rights.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/04_definers_vs_invokers_rights.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/05_security_example.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/05_security_example.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/05_security_example.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/05_security_example.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/09_program_security/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/02_spl_programs/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/03_variable_declarations/01_declaring_a_variable.mdx b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/01_declaring_a_variable.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/03_variable_declarations/01_declaring_a_variable.mdx rename to product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/01_declaring_a_variable.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/03_variable_declarations/02_using__type_in_variable_declarations.mdx b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/02_using__type_in_variable_declarations.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/03_variable_declarations/02_using__type_in_variable_declarations.mdx rename to product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/02_using__type_in_variable_declarations.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/03_variable_declarations/03_using__row_type_in_record_declarations.mdx b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/03_using__row_type_in_record_declarations.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/03_variable_declarations/03_using__row_type_in_record_declarations.mdx rename to product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/03_using__row_type_in_record_declarations.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/03_variable_declarations/04_user_defined_record_types_and_record_variables.mdx b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/04_user_defined_record_types_and_record_variables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/03_variable_declarations/04_user_defined_record_types_and_record_variables.mdx rename to product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/04_user_defined_record_types_and_record_variables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/03_variable_declarations/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/03_variable_declarations/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/01_assignment.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/01_assignment.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/01_assignment.mdx rename to product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/01_assignment.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/02_delete.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/02_delete.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/02_delete.mdx rename to product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/02_delete.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/03_insert.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/03_insert.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/03_insert.mdx rename to product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/03_insert.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/04_null.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/04_null.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/04_null.mdx rename to product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/04_null.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/05_using_the_returning_into_clause.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/05_using_the_returning_into_clause.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/05_using_the_returning_into_clause.mdx rename to product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/05_using_the_returning_into_clause.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/06_select_into.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/06_select_into.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/06_select_into.mdx rename to product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/06_select_into.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/07_update.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/07_update.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/07_update.mdx rename to product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/07_update.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/08_obtaining_the_result_status.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/08_obtaining_the_result_status.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/08_obtaining_the_result_status.mdx rename to product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/08_obtaining_the_result_status.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/04_basic_statements/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/01_if_statement/01_if_then.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/01_if_then.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/01_if_statement/01_if_then.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/01_if_then.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/01_if_statement/02_if_then_else.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/02_if_then_else.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/01_if_statement/02_if_then_else.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/02_if_then_else.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/01_if_statement/03_if_then_else_if.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/03_if_then_else_if.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/01_if_statement/03_if_then_else_if.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/03_if_then_else_if.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/01_if_statement/04_if_then_elseif_else.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/04_if_then_elseif_else.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/01_if_statement/04_if_then_elseif_else.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/04_if_then_elseif_else.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/01_if_statement/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/01_if_statement/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/02_return_statement.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/02_return_statement.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/02_return_statement.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/02_return_statement.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/03_goto_statement.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/03_goto_statement.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/03_goto_statement.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/03_goto_statement.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/04_case_expression/01_selector_case_expression.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/04_case_expression/01_selector_case_expression.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/04_case_expression/01_selector_case_expression.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/04_case_expression/01_selector_case_expression.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/04_case_expression/02_searched_case_expression.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/04_case_expression/02_searched_case_expression.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/04_case_expression/02_searched_case_expression.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/04_case_expression/02_searched_case_expression.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/04_case_expression/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/04_case_expression/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/04_case_expression/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/04_case_expression/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/05_case_statement/01_selector_case_statement.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/05_case_statement/01_selector_case_statement.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/05_case_statement/01_selector_case_statement.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/05_case_statement/01_selector_case_statement.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/05_case_statement/02_searched_case_statement.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/05_case_statement/02_searched_case_statement.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/05_case_statement/02_searched_case_statement.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/05_case_statement/02_searched_case_statement.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/05_case_statement/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/05_case_statement/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/05_case_statement/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/05_case_statement/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/01_loop.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/01_loop.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/01_loop.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/01_loop.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/02_exit.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/02_exit.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/02_exit.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/02_exit.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/03_continue.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/03_continue.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/03_continue.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/03_continue.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/04_while.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/04_while.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/04_while.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/04_while.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/05_for_integer_variant.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/05_for_integer_variant.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/05_for_integer_variant.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/05_for_integer_variant.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/06_loops/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/06_loops/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/07_exception_handling.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/07_exception_handling.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/07_exception_handling.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/07_exception_handling.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/08_user_defined_exceptions.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/08_user_defined_exceptions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/08_user_defined_exceptions.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/08_user_defined_exceptions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/09_pragma_exception_init.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/09_pragma_exception_init.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/09_pragma_exception_init.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/09_pragma_exception_init.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/10_raise_application_error.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/10_raise_application_error.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/10_raise_application_error.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/10_raise_application_error.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/05_control_structures/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/05_control_structures/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/05_control_structures/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/06_transaction_control/01_commit.mdx b/product_docs/docs/epas/15/epas_compat_spl/06_transaction_control/01_commit.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/06_transaction_control/01_commit.mdx rename to product_docs/docs/epas/15/epas_compat_spl/06_transaction_control/01_commit.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/06_transaction_control/02_rollback.mdx b/product_docs/docs/epas/15/epas_compat_spl/06_transaction_control/02_rollback.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/06_transaction_control/02_rollback.mdx rename to product_docs/docs/epas/15/epas_compat_spl/06_transaction_control/02_rollback.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/06_transaction_control/03_pragma_autonomous_transaction.mdx b/product_docs/docs/epas/15/epas_compat_spl/06_transaction_control/03_pragma_autonomous_transaction.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/06_transaction_control/03_pragma_autonomous_transaction.mdx rename to product_docs/docs/epas/15/epas_compat_spl/06_transaction_control/03_pragma_autonomous_transaction.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/06_transaction_control/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/06_transaction_control/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/06_transaction_control/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/06_transaction_control/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/07_dynamic_sql.mdx b/product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/07_dynamic_sql.mdx rename to product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/01_declaring_a_cursor.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/01_declaring_a_cursor.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/01_declaring_a_cursor.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/01_declaring_a_cursor.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/02_opening_a_cursor.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/02_opening_a_cursor.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/02_opening_a_cursor.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/02_opening_a_cursor.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/03_fetching_rows_from_a_cursor.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/03_fetching_rows_from_a_cursor.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/03_fetching_rows_from_a_cursor.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/03_fetching_rows_from_a_cursor.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/04_closing_a_cursor.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/04_closing_a_cursor.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/04_closing_a_cursor.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/04_closing_a_cursor.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/05_using__rowtype_with_cursors.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/05_using__rowtype_with_cursors.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/05_using__rowtype_with_cursors.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/05_using__rowtype_with_cursors.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/01_isopen.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/01_isopen.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/01_isopen.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/01_isopen.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/02_found.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/02_found.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/02_found.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/02_found.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/03_notfound.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/03_notfound.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/03_notfound.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/03_notfound.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/04_rowcount.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/04_rowcount.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/04_rowcount.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/04_rowcount.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/05_summary_of_cursor_states_and_attributes.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/05_summary_of_cursor_states_and_attributes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/05_summary_of_cursor_states_and_attributes.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/05_summary_of_cursor_states_and_attributes.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/06_cursor_attributes/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/06_cursor_attributes/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/07_cursor_for_loop.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/07_cursor_for_loop.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/07_cursor_for_loop.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/07_cursor_for_loop.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/08_parameterized_cursors.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/08_parameterized_cursors.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/08_parameterized_cursors.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/08_parameterized_cursors.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/08_static_cursors/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/08_static_cursors/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/01_ref_cursor_overview.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/01_ref_cursor_overview.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/01_ref_cursor_overview.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/01_ref_cursor_overview.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/01_declaring_a_sys_refcursor_cursor_variable.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/01_declaring_a_sys_refcursor_cursor_variable.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/01_declaring_a_sys_refcursor_cursor_variable.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/01_declaring_a_sys_refcursor_cursor_variable.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/02_declaring_a_user_defined_ref_cursor_type_variable.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/02_declaring_a_user_defined_ref_cursor_type_variable.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/02_declaring_a_user_defined_ref_cursor_type_variable.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/02_declaring_a_user_defined_ref_cursor_type_variable.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/02_declaring_a_cursor_variable/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/03_opening_a_cursor_variable.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/03_opening_a_cursor_variable.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/03_opening_a_cursor_variable.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/03_opening_a_cursor_variable.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/04_fetching_rows_from_a_cursor_variable.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/04_fetching_rows_from_a_cursor_variable.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/04_fetching_rows_from_a_cursor_variable.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/04_fetching_rows_from_a_cursor_variable.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/05_closing_a_cursor_variable.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/05_closing_a_cursor_variable.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/05_closing_a_cursor_variable.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/05_closing_a_cursor_variable.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/06_usage_restrictions.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/06_usage_restrictions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/06_usage_restrictions.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/06_usage_restrictions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/01_returning_a_ref_cursor_from_a_function.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/01_returning_a_ref_cursor_from_a_function.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/01_returning_a_ref_cursor_from_a_function.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/01_returning_a_ref_cursor_from_a_function.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/02_modularizing_cursor_operations.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/02_modularizing_cursor_operations.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/02_modularizing_cursor_operations.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/02_modularizing_cursor_operations.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/07_examples/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/08_dynamic_queries_with_ref_cursors.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/08_dynamic_queries_with_ref_cursors.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/08_dynamic_queries_with_ref_cursors.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/08_dynamic_queries_with_ref_cursors.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/09_ref_cursors_and_cursor_variables/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/09_ref_cursors_and_cursor_variables/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/10_collections/01_associative_arrays.mdx b/product_docs/docs/epas/15/epas_compat_spl/10_collections/01_associative_arrays.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/10_collections/01_associative_arrays.mdx rename to product_docs/docs/epas/15/epas_compat_spl/10_collections/01_associative_arrays.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/10_collections/02_nested_tables.mdx b/product_docs/docs/epas/15/epas_compat_spl/10_collections/02_nested_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/10_collections/02_nested_tables.mdx rename to product_docs/docs/epas/15/epas_compat_spl/10_collections/02_nested_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/10_collections/03_varrays.mdx b/product_docs/docs/epas/15/epas_compat_spl/10_collections/03_varrays.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/10_collections/03_varrays.mdx rename to product_docs/docs/epas/15/epas_compat_spl/10_collections/03_varrays.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/10_collections/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/10_collections/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/10_collections/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/10_collections/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/01_count.mdx b/product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/01_count.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/01_count.mdx rename to product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/01_count.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/02_deletes.mdx b/product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/02_deletes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/02_deletes.mdx rename to product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/02_deletes.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/03_exists.mdx b/product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/03_exists.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/03_exists.mdx rename to product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/03_exists.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/04_extend.mdx b/product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/04_extend.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/04_extend.mdx rename to product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/04_extend.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/05_first.mdx b/product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/05_first.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/05_first.mdx rename to product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/05_first.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/06_last.mdx b/product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/06_last.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/06_last.mdx rename to product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/06_last.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/07_limit.mdx b/product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/07_limit.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/07_limit.mdx rename to product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/07_limit.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/08_next.mdx b/product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/08_next.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/08_next.mdx rename to product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/08_next.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/09_prior.mdx b/product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/09_prior.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/09_prior.mdx rename to product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/09_prior.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/10_trim.mdx b/product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/10_trim.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/10_trim.mdx rename to product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/10_trim.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/11_collection_methods/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/11_collection_methods/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/01_table.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/01_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/01_table.mdx rename to product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/01_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/02_using_the_multiset_union_operator.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/02_using_the_multiset_union_operator.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/02_using_the_multiset_union_operator.mdx rename to product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/02_using_the_multiset_union_operator.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/03_using_the_forall_statement.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/03_using_the_forall_statement.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/03_using_the_forall_statement.mdx rename to product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/03_using_the_forall_statement.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/01_select_bulk_collect.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/01_select_bulk_collect.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/01_select_bulk_collect.mdx rename to product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/01_select_bulk_collect.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/02_fetch_bulk_collect.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/02_fetch_bulk_collect.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/02_fetch_bulk_collect.mdx rename to product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/02_fetch_bulk_collect.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/03_execute_immediate_bulk_collect.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/03_execute_immediate_bulk_collect.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/03_execute_immediate_bulk_collect.mdx rename to product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/03_execute_immediate_bulk_collect.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/04_returning_bulk_collect.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/04_returning_bulk_collect.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/04_returning_bulk_collect.mdx rename to product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/04_returning_bulk_collect.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx rename to product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/12_working_with_collections/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/01_overview.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/01_overview.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/01_overview.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/01_overview.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/02_types_of_triggers.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/02_types_of_triggers.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/02_types_of_triggers.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/02_types_of_triggers.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/03_creating_triggers.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/03_creating_triggers.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/03_creating_triggers.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/03_creating_triggers.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/04_trigger_variables.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/04_trigger_variables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/04_trigger_variables.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/04_trigger_variables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/05_transactions_and_exceptions.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/05_transactions_and_exceptions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/05_transactions_and_exceptions.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/05_transactions_and_exceptions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/06_compound_triggers.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/06_compound_triggers.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/06_compound_triggers.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/06_compound_triggers.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/01_before_statement_level_trigger.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/01_before_statement_level_trigger.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/01_before_statement_level_trigger.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/01_before_statement_level_trigger.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/02_after_statement_level_trigger.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/02_after_statement_level_trigger.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/02_after_statement_level_trigger.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/02_after_statement_level_trigger.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/03_before_row_level_trigger.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/03_before_row_level_trigger.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/03_before_row_level_trigger.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/03_before_row_level_trigger.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/04_after_row_level_trigger.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/04_after_row_level_trigger.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/04_after_row_level_trigger.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/04_after_row_level_trigger.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/05_instead_of_trigger.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/05_instead_of_trigger.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/05_instead_of_trigger.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/05_instead_of_trigger.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/06_compound_trigger.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/06_compound_trigger.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/06_compound_trigger.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/06_compound_trigger.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/07_trigger_examples/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/07_trigger_examples/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/13_triggers/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/13_triggers/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/13_triggers/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/13_triggers/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/14_packages.mdx b/product_docs/docs/epas/15/epas_compat_spl/14_packages.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/14_packages.mdx rename to product_docs/docs/epas/15/epas_compat_spl/14_packages.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/01_attributes.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/01_attributes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/01_attributes.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/01_attributes.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/02_methods.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/02_methods.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/02_methods.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/02_methods.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/03_overloading_methods.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/03_overloading_methods.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/03_overloading_methods.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/03_overloading_methods.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/01_basic_object_concepts/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/02_object_type_components/01_object_type_specification_syntax.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/02_object_type_components/01_object_type_specification_syntax.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/02_object_type_components/01_object_type_specification_syntax.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/02_object_type_components/01_object_type_specification_syntax.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/02_object_type_components/02_object_type_body_syntax.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/02_object_type_components/02_object_type_body_syntax.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/02_object_type_components/02_object_type_body_syntax.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/02_object_type_components/02_object_type_body_syntax.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/02_object_type_components/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/02_object_type_components/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/02_object_type_components/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/02_object_type_components/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/01_member_methods.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/01_member_methods.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/01_member_methods.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/01_member_methods.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/02_static_methods.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/02_static_methods.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/02_static_methods.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/02_static_methods.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/03_constructor_methods.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/03_constructor_methods.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/03_constructor_methods.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/03_constructor_methods.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/03_creating_object_types/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/04_creating_object_instances.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/04_creating_object_instances.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/04_creating_object_instances.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/04_creating_object_instances.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/05_referencing_an_object.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/05_referencing_an_object.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/05_referencing_an_object.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/05_referencing_an_object.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/06_dropping_an_object_type.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/06_dropping_an_object_type.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/06_dropping_an_object_type.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/06_dropping_an_object_type.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/15_object_types_and_objects/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/15_object_types_and_objects/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_spl/images/definer's_rights_package.png b/product_docs/docs/epas/15/epas_compat_spl/images/definer's_rights_package.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/images/definer's_rights_package.png rename to product_docs/docs/epas/15/epas_compat_spl/images/definer's_rights_package.png diff --git a/product_docs/docs/epas/14/epas_compat_spl/images/definers_rights_package.png b/product_docs/docs/epas/15/epas_compat_spl/images/definers_rights_package.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/images/definers_rights_package.png rename to product_docs/docs/epas/15/epas_compat_spl/images/definers_rights_package.png diff --git a/product_docs/docs/epas/14/epas_compat_spl/images/edb_logo.png b/product_docs/docs/epas/15/epas_compat_spl/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/images/edb_logo.png rename to product_docs/docs/epas/15/epas_compat_spl/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_compat_spl/images/edb_logo.svg b/product_docs/docs/epas/15/epas_compat_spl/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_compat_spl/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_compat_spl/images/employee_organization_hierarchy.png b/product_docs/docs/epas/15/epas_compat_spl/images/employee_organization_hierarchy.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/images/employee_organization_hierarchy.png rename to product_docs/docs/epas/15/epas_compat_spl/images/employee_organization_hierarchy.png diff --git a/product_docs/docs/epas/14/epas_compat_spl/images/invokers_rights_programs.png b/product_docs/docs/epas/15/epas_compat_spl/images/invokers_rights_programs.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/images/invokers_rights_programs.png rename to product_docs/docs/epas/15/epas_compat_spl/images/invokers_rights_programs.png diff --git a/product_docs/docs/epas/14/epas_compat_spl/images/open_client_library.png b/product_docs/docs/epas/15/epas_compat_spl/images/open_client_library.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/images/open_client_library.png rename to product_docs/docs/epas/15/epas_compat_spl/images/open_client_library.png diff --git a/product_docs/docs/epas/14/epas_compat_spl/images/sample_database_tables.png b/product_docs/docs/epas/15/epas_compat_spl/images/sample_database_tables.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/images/sample_database_tables.png rename to product_docs/docs/epas/15/epas_compat_spl/images/sample_database_tables.png diff --git a/product_docs/docs/epas/14/epas_compat_spl/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_spl/index.mdx rename to product_docs/docs/epas/15/epas_compat_spl/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/02_alter_directory.mdx b/product_docs/docs/epas/15/epas_compat_sql/02_alter_directory.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/02_alter_directory.mdx rename to product_docs/docs/epas/15/epas_compat_sql/02_alter_directory.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/03_alter_index.mdx b/product_docs/docs/epas/15/epas_compat_sql/03_alter_index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/03_alter_index.mdx rename to product_docs/docs/epas/15/epas_compat_sql/03_alter_index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/04_alter_procedure.mdx b/product_docs/docs/epas/15/epas_compat_sql/04_alter_procedure.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/04_alter_procedure.mdx rename to product_docs/docs/epas/15/epas_compat_sql/04_alter_procedure.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/05_alter_profile.mdx b/product_docs/docs/epas/15/epas_compat_sql/05_alter_profile.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/05_alter_profile.mdx rename to product_docs/docs/epas/15/epas_compat_sql/05_alter_profile.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/06_alter_queue.mdx b/product_docs/docs/epas/15/epas_compat_sql/06_alter_queue.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/06_alter_queue.mdx rename to product_docs/docs/epas/15/epas_compat_sql/06_alter_queue.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/07_alter_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_sql/07_alter_queue_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/07_alter_queue_table.mdx rename to product_docs/docs/epas/15/epas_compat_sql/07_alter_queue_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/08_alter_role_identified_by.mdx b/product_docs/docs/epas/15/epas_compat_sql/08_alter_role_identified_by.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/08_alter_role_identified_by.mdx rename to product_docs/docs/epas/15/epas_compat_sql/08_alter_role_identified_by.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/09_alter_role_managing_database_link_and_dbms_rls_privileges.mdx b/product_docs/docs/epas/15/epas_compat_sql/09_alter_role_managing_database_link_and_dbms_rls_privileges.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/09_alter_role_managing_database_link_and_dbms_rls_privileges.mdx rename to product_docs/docs/epas/15/epas_compat_sql/09_alter_role_managing_database_link_and_dbms_rls_privileges.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/10_alter_sequence.mdx b/product_docs/docs/epas/15/epas_compat_sql/10_alter_sequence.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/10_alter_sequence.mdx rename to product_docs/docs/epas/15/epas_compat_sql/10_alter_sequence.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/11_alter_session.mdx b/product_docs/docs/epas/15/epas_compat_sql/11_alter_session.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/11_alter_session.mdx rename to product_docs/docs/epas/15/epas_compat_sql/11_alter_session.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/11a_alter_synonym.mdx b/product_docs/docs/epas/15/epas_compat_sql/11a_alter_synonym.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/11a_alter_synonym.mdx rename to product_docs/docs/epas/15/epas_compat_sql/11a_alter_synonym.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/12_alter_table.mdx b/product_docs/docs/epas/15/epas_compat_sql/12_alter_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/12_alter_table.mdx rename to product_docs/docs/epas/15/epas_compat_sql/12_alter_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/13_alter_trigger.mdx b/product_docs/docs/epas/15/epas_compat_sql/13_alter_trigger.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/13_alter_trigger.mdx rename to product_docs/docs/epas/15/epas_compat_sql/13_alter_trigger.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/14_alter_tablespace.mdx b/product_docs/docs/epas/15/epas_compat_sql/14_alter_tablespace.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/14_alter_tablespace.mdx rename to product_docs/docs/epas/15/epas_compat_sql/14_alter_tablespace.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/15_alter_user_identified_by.mdx b/product_docs/docs/epas/15/epas_compat_sql/15_alter_user_identified_by.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/15_alter_user_identified_by.mdx rename to product_docs/docs/epas/15/epas_compat_sql/15_alter_user_identified_by.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/16_alter_user_role_profile_management_clauses.mdx b/product_docs/docs/epas/15/epas_compat_sql/16_alter_user_role_profile_management_clauses.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/16_alter_user_role_profile_management_clauses.mdx rename to product_docs/docs/epas/15/epas_compat_sql/16_alter_user_role_profile_management_clauses.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/17_call.mdx b/product_docs/docs/epas/15/epas_compat_sql/17_call.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/17_call.mdx rename to product_docs/docs/epas/15/epas_compat_sql/17_call.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/18_comment.mdx b/product_docs/docs/epas/15/epas_compat_sql/18_comment.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/18_comment.mdx rename to product_docs/docs/epas/15/epas_compat_sql/18_comment.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/19_commit.mdx b/product_docs/docs/epas/15/epas_compat_sql/19_commit.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/19_commit.mdx rename to product_docs/docs/epas/15/epas_compat_sql/19_commit.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/20_create_database.mdx b/product_docs/docs/epas/15/epas_compat_sql/20_create_database.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/20_create_database.mdx rename to product_docs/docs/epas/15/epas_compat_sql/20_create_database.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/21_create_public_database_link.mdx b/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/21_create_public_database_link.mdx rename to product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/22_create_directory.mdx b/product_docs/docs/epas/15/epas_compat_sql/22_create_directory.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/22_create_directory.mdx rename to product_docs/docs/epas/15/epas_compat_sql/22_create_directory.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/23_create_function.mdx b/product_docs/docs/epas/15/epas_compat_sql/23_create_function.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/23_create_function.mdx rename to product_docs/docs/epas/15/epas_compat_sql/23_create_function.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/24_create_index.mdx b/product_docs/docs/epas/15/epas_compat_sql/24_create_index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/24_create_index.mdx rename to product_docs/docs/epas/15/epas_compat_sql/24_create_index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/25_create_materialized_view.mdx b/product_docs/docs/epas/15/epas_compat_sql/25_create_materialized_view.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/25_create_materialized_view.mdx rename to product_docs/docs/epas/15/epas_compat_sql/25_create_materialized_view.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/26_create_package.mdx b/product_docs/docs/epas/15/epas_compat_sql/26_create_package.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/26_create_package.mdx rename to product_docs/docs/epas/15/epas_compat_sql/26_create_package.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/27_create_package_body.mdx b/product_docs/docs/epas/15/epas_compat_sql/27_create_package_body.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/27_create_package_body.mdx rename to product_docs/docs/epas/15/epas_compat_sql/27_create_package_body.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/28_create_procedure.mdx b/product_docs/docs/epas/15/epas_compat_sql/28_create_procedure.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/28_create_procedure.mdx rename to product_docs/docs/epas/15/epas_compat_sql/28_create_procedure.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/29_create_profile.mdx b/product_docs/docs/epas/15/epas_compat_sql/29_create_profile.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/29_create_profile.mdx rename to product_docs/docs/epas/15/epas_compat_sql/29_create_profile.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/30_create_queue.mdx b/product_docs/docs/epas/15/epas_compat_sql/30_create_queue.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/30_create_queue.mdx rename to product_docs/docs/epas/15/epas_compat_sql/30_create_queue.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/31_create_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_sql/31_create_queue_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/31_create_queue_table.mdx rename to product_docs/docs/epas/15/epas_compat_sql/31_create_queue_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/32_create_role.mdx b/product_docs/docs/epas/15/epas_compat_sql/32_create_role.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/32_create_role.mdx rename to product_docs/docs/epas/15/epas_compat_sql/32_create_role.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/33_create_schema.mdx b/product_docs/docs/epas/15/epas_compat_sql/33_create_schema.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/33_create_schema.mdx rename to product_docs/docs/epas/15/epas_compat_sql/33_create_schema.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/34_create_sequence.mdx b/product_docs/docs/epas/15/epas_compat_sql/34_create_sequence.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/34_create_sequence.mdx rename to product_docs/docs/epas/15/epas_compat_sql/34_create_sequence.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/35_create_synonym.mdx b/product_docs/docs/epas/15/epas_compat_sql/35_create_synonym.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/35_create_synonym.mdx rename to product_docs/docs/epas/15/epas_compat_sql/35_create_synonym.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/36_create_table.mdx b/product_docs/docs/epas/15/epas_compat_sql/36_create_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/36_create_table.mdx rename to product_docs/docs/epas/15/epas_compat_sql/36_create_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/37_create_table_as.mdx b/product_docs/docs/epas/15/epas_compat_sql/37_create_table_as.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/37_create_table_as.mdx rename to product_docs/docs/epas/15/epas_compat_sql/37_create_table_as.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/38_create_trigger.mdx b/product_docs/docs/epas/15/epas_compat_sql/38_create_trigger.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/38_create_trigger.mdx rename to product_docs/docs/epas/15/epas_compat_sql/38_create_trigger.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/39_create_type.mdx b/product_docs/docs/epas/15/epas_compat_sql/39_create_type.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/39_create_type.mdx rename to product_docs/docs/epas/15/epas_compat_sql/39_create_type.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/40_create_type_body.mdx b/product_docs/docs/epas/15/epas_compat_sql/40_create_type_body.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/40_create_type_body.mdx rename to product_docs/docs/epas/15/epas_compat_sql/40_create_type_body.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/41_create_user.mdx b/product_docs/docs/epas/15/epas_compat_sql/41_create_user.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/41_create_user.mdx rename to product_docs/docs/epas/15/epas_compat_sql/41_create_user.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/42_create_user_role_profile_management_clauses.mdx b/product_docs/docs/epas/15/epas_compat_sql/42_create_user_role_profile_management_clauses.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/42_create_user_role_profile_management_clauses.mdx rename to product_docs/docs/epas/15/epas_compat_sql/42_create_user_role_profile_management_clauses.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/43_create_view.mdx b/product_docs/docs/epas/15/epas_compat_sql/43_create_view.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/43_create_view.mdx rename to product_docs/docs/epas/15/epas_compat_sql/43_create_view.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/44_delete.mdx b/product_docs/docs/epas/15/epas_compat_sql/44_delete.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/44_delete.mdx rename to product_docs/docs/epas/15/epas_compat_sql/44_delete.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/45_drop_public_database_link.mdx b/product_docs/docs/epas/15/epas_compat_sql/45_drop_public_database_link.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/45_drop_public_database_link.mdx rename to product_docs/docs/epas/15/epas_compat_sql/45_drop_public_database_link.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/46_drop_directory.mdx b/product_docs/docs/epas/15/epas_compat_sql/46_drop_directory.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/46_drop_directory.mdx rename to product_docs/docs/epas/15/epas_compat_sql/46_drop_directory.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/47_drop_function.mdx b/product_docs/docs/epas/15/epas_compat_sql/47_drop_function.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/47_drop_function.mdx rename to product_docs/docs/epas/15/epas_compat_sql/47_drop_function.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/48_drop_index.mdx b/product_docs/docs/epas/15/epas_compat_sql/48_drop_index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/48_drop_index.mdx rename to product_docs/docs/epas/15/epas_compat_sql/48_drop_index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/49_drop_package.mdx b/product_docs/docs/epas/15/epas_compat_sql/49_drop_package.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/49_drop_package.mdx rename to product_docs/docs/epas/15/epas_compat_sql/49_drop_package.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/50_drop_procedure.mdx b/product_docs/docs/epas/15/epas_compat_sql/50_drop_procedure.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/50_drop_procedure.mdx rename to product_docs/docs/epas/15/epas_compat_sql/50_drop_procedure.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/51_drop_profile.mdx b/product_docs/docs/epas/15/epas_compat_sql/51_drop_profile.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/51_drop_profile.mdx rename to product_docs/docs/epas/15/epas_compat_sql/51_drop_profile.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/52_drop_queue.mdx b/product_docs/docs/epas/15/epas_compat_sql/52_drop_queue.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/52_drop_queue.mdx rename to product_docs/docs/epas/15/epas_compat_sql/52_drop_queue.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/53_drop_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_sql/53_drop_queue_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/53_drop_queue_table.mdx rename to product_docs/docs/epas/15/epas_compat_sql/53_drop_queue_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/54_drop_synonym.mdx b/product_docs/docs/epas/15/epas_compat_sql/54_drop_synonym.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/54_drop_synonym.mdx rename to product_docs/docs/epas/15/epas_compat_sql/54_drop_synonym.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/55_drop_role.mdx b/product_docs/docs/epas/15/epas_compat_sql/55_drop_role.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/55_drop_role.mdx rename to product_docs/docs/epas/15/epas_compat_sql/55_drop_role.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/56_drop_sequence.mdx b/product_docs/docs/epas/15/epas_compat_sql/56_drop_sequence.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/56_drop_sequence.mdx rename to product_docs/docs/epas/15/epas_compat_sql/56_drop_sequence.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/57_drop_table.mdx b/product_docs/docs/epas/15/epas_compat_sql/57_drop_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/57_drop_table.mdx rename to product_docs/docs/epas/15/epas_compat_sql/57_drop_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/58_drop_tablespace.mdx b/product_docs/docs/epas/15/epas_compat_sql/58_drop_tablespace.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/58_drop_tablespace.mdx rename to product_docs/docs/epas/15/epas_compat_sql/58_drop_tablespace.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/59_drop_trigger.mdx b/product_docs/docs/epas/15/epas_compat_sql/59_drop_trigger.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/59_drop_trigger.mdx rename to product_docs/docs/epas/15/epas_compat_sql/59_drop_trigger.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/60_drop_type.mdx b/product_docs/docs/epas/15/epas_compat_sql/60_drop_type.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/60_drop_type.mdx rename to product_docs/docs/epas/15/epas_compat_sql/60_drop_type.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/61_drop_user.mdx b/product_docs/docs/epas/15/epas_compat_sql/61_drop_user.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/61_drop_user.mdx rename to product_docs/docs/epas/15/epas_compat_sql/61_drop_user.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/62_drop_view.mdx b/product_docs/docs/epas/15/epas_compat_sql/62_drop_view.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/62_drop_view.mdx rename to product_docs/docs/epas/15/epas_compat_sql/62_drop_view.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/63_exec.mdx b/product_docs/docs/epas/15/epas_compat_sql/63_exec.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/63_exec.mdx rename to product_docs/docs/epas/15/epas_compat_sql/63_exec.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/64_grant.mdx b/product_docs/docs/epas/15/epas_compat_sql/64_grant.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/64_grant.mdx rename to product_docs/docs/epas/15/epas_compat_sql/64_grant.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/65_insert.mdx b/product_docs/docs/epas/15/epas_compat_sql/65_insert.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/65_insert.mdx rename to product_docs/docs/epas/15/epas_compat_sql/65_insert.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/66_lock.mdx b/product_docs/docs/epas/15/epas_compat_sql/66_lock.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/66_lock.mdx rename to product_docs/docs/epas/15/epas_compat_sql/66_lock.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/67_revoke.mdx b/product_docs/docs/epas/15/epas_compat_sql/67_revoke.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/67_revoke.mdx rename to product_docs/docs/epas/15/epas_compat_sql/67_revoke.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/68_rollback.mdx b/product_docs/docs/epas/15/epas_compat_sql/68_rollback.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/68_rollback.mdx rename to product_docs/docs/epas/15/epas_compat_sql/68_rollback.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/69_rollback_to_savepoint.mdx b/product_docs/docs/epas/15/epas_compat_sql/69_rollback_to_savepoint.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/69_rollback_to_savepoint.mdx rename to product_docs/docs/epas/15/epas_compat_sql/69_rollback_to_savepoint.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/70_savepoint.mdx b/product_docs/docs/epas/15/epas_compat_sql/70_savepoint.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/70_savepoint.mdx rename to product_docs/docs/epas/15/epas_compat_sql/70_savepoint.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/71_select.mdx b/product_docs/docs/epas/15/epas_compat_sql/71_select.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/71_select.mdx rename to product_docs/docs/epas/15/epas_compat_sql/71_select.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/72_set_constraints.mdx b/product_docs/docs/epas/15/epas_compat_sql/72_set_constraints.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/72_set_constraints.mdx rename to product_docs/docs/epas/15/epas_compat_sql/72_set_constraints.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/73_set_role.mdx b/product_docs/docs/epas/15/epas_compat_sql/73_set_role.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/73_set_role.mdx rename to product_docs/docs/epas/15/epas_compat_sql/73_set_role.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/74_set_transaction.mdx b/product_docs/docs/epas/15/epas_compat_sql/74_set_transaction.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/74_set_transaction.mdx rename to product_docs/docs/epas/15/epas_compat_sql/74_set_transaction.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/75_truncate.mdx b/product_docs/docs/epas/15/epas_compat_sql/75_truncate.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/75_truncate.mdx rename to product_docs/docs/epas/15/epas_compat_sql/75_truncate.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/76_update.mdx b/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/76_update.mdx rename to product_docs/docs/epas/15/epas_compat_sql/76_update.mdx diff --git a/product_docs/docs/epas/14/epas_compat_sql/images/edb_logo.png b/product_docs/docs/epas/15/epas_compat_sql/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/images/edb_logo.png rename to product_docs/docs/epas/15/epas_compat_sql/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_compat_sql/images/edb_logo.svg b/product_docs/docs/epas/15/epas_compat_sql/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_compat_sql/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_compat_sql/index.mdx b/product_docs/docs/epas/15/epas_compat_sql/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_sql/index.mdx rename to product_docs/docs/epas/15/epas_compat_sql/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/02_selecting_a_partition_type/01_interval_range_partitioning.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/02_selecting_a_partition_type/01_interval_range_partitioning.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/02_selecting_a_partition_type/01_interval_range_partitioning.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/02_selecting_a_partition_type/01_interval_range_partitioning.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/02_selecting_a_partition_type/02_automatic_list_partitioning.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/02_selecting_a_partition_type/02_automatic_list_partitioning.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/02_selecting_a_partition_type/02_automatic_list_partitioning.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/02_selecting_a_partition_type/02_automatic_list_partitioning.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/02_selecting_a_partition_type/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/02_selecting_a_partition_type/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/02_selecting_a_partition_type/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/02_selecting_a_partition_type/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/03_using_partition_pruning/01_example_partition_pruning.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/01_example_partition_pruning.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/03_using_partition_pruning/01_example_partition_pruning.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/01_example_partition_pruning.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/03_using_partition_pruning/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/03_using_partition_pruning/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/01_example_partition_by_list.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/01_example_partition_by_list.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/01_example_partition_by_list.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/01_example_partition_by_list.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/02_example_automatic_list_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/02_example_automatic_list_partition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/02_example_automatic_list_partition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/02_example_automatic_list_partition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/03_example_partition_by_range.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/03_example_partition_by_range.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/03_example_partition_by_range.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/03_example_partition_by_range.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/04_example_interval_range_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/04_example_interval_range_partition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/04_example_interval_range_partition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/04_example_interval_range_partition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/05_example_partition_by_hash.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/05_example_partition_by_hash.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/05_example_partition_by_hash.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/05_example_partition_by_hash.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/06_example_partitions_number.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/06_example_partitions_number.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/06_example_partitions_number.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/06_example_partitions_number.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/07_example_partition_by_range_subpartition_by_list.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/07_example_partition_by_range_subpartition_by_list.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/07_example_partition_by_range_subpartition_by_list.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/07_example_partition_by_range_subpartition_by_list.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/08_example_creating_unique_index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/08_example_creating_unique_index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/08_example_creating_unique_index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/08_example_creating_unique_index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/09_example_subpartition_template.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/09_example_subpartition_template.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/09_example_subpartition_template.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/09_example_subpartition_template.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/01_example_adding_a_partition_to_a_list_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/01_example_adding_a_partition_to_a_list_partitioned_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/01_example_adding_a_partition_to_a_list_partitioned_table.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/01_example_adding_a_partition_to_a_list_partitioned_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/02_example_adding_a_partition_to_a_range_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/02_example_adding_a_partition_to_a_range_partitioned_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/02_example_adding_a_partition_to_a_range_partitioned_table.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/02_example_adding_a_partition_to_a_range_partitioned_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/03_example_adding_a_partition_with_subpartitions_number.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/03_example_adding_a_partition_with_subpartitions_number.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/03_example_adding_a_partition_with_subpartitions_number.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/03_example_adding_a_partition_with_subpartitions_number.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/01_example_adding_a_subpartition_to_a_list_range_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/01_example_adding_a_subpartition_to_a_list_range_partitioned_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/01_example_adding_a_subpartition_to_a_list_range_partitioned_table.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/01_example_adding_a_subpartition_to_a_list_range_partitioned_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/02_example_adding_a_subpartition_to_a_range_list_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/02_example_adding_a_subpartition_to_a_range_list_partitioned_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/02_example_adding_a_subpartition_to_a_range_list_partitioned_table.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/02_example_adding_a_subpartition_to_a_range_list_partitioned_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/01_example_splitting_a_list_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/01_example_splitting_a_list_partition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/01_example_splitting_a_list_partition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/01_example_splitting_a_list_partition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/02_example_splitting_a_range_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/02_example_splitting_a_range_partition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/02_example_splitting_a_range_partition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/02_example_splitting_a_range_partition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/03_example_splitting_a_range_list_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/03_example_splitting_a_range_list_partition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/03_example_splitting_a_range_list_partition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/03_example_splitting_a_range_list_partition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/01_example_splitting_a_list_subpartition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/01_example_splitting_a_list_subpartition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/01_example_splitting_a_list_subpartition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/01_example_splitting_a_list_subpartition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/02_example_splitting_a_range_subpartition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/02_example_splitting_a_range_subpartition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/02_example_splitting_a_range_subpartition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/02_example_splitting_a_range_subpartition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/01_example_exchanging_a_table_for_a_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/01_example_exchanging_a_table_for_a_partition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/01_example_exchanging_a_table_for_a_partition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/01_example_exchanging_a_table_for_a_partition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/01_example_moving_a_partition_to_a_different_tablespace.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/01_example_moving_a_partition_to_a_different_tablespace.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/01_example_moving_a_partition_to_a_different_tablespace.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/01_example_moving_a_partition_to_a_different_tablespace.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/01_example_renaming_a_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/01_example_renaming_a_partition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/01_example_renaming_a_partition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/01_example_renaming_a_partition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/01_example_setting_an_interval_range_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/01_example_setting_an_interval_range_partition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/01_example_setting_an_interval_range_partition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/01_example_setting_an_interval_range_partition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/01_example_setting_an_automatic_list_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/01_example_setting_an_automatic_list_partition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/01_example_setting_an_automatic_list_partition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/01_example_setting_an_automatic_list_partition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/01_example_setting_a_subpartition_template.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/01_example_setting_a_subpartition_template.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/01_example_setting_a_subpartition_template.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/01_example_setting_a_subpartition_template.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/12_drop_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/12_drop_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/12_drop_table.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/12_drop_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/01_example_deleting_a_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/01_example_deleting_a_partition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/01_example_deleting_a_partition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/01_example_deleting_a_partition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/01_example_deleting_a_subpartition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/01_example_deleting_a_subpartition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/01_example_deleting_a_subpartition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/01_example_deleting_a_subpartition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/01_example_emptying_a_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/01_example_emptying_a_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/01_example_emptying_a_table.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/01_example_emptying_a_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/01_example_emptying_a_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/01_example_emptying_a_partition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/01_example_emptying_a_partition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/01_example_emptying_a_partition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/01_example_emptying_a_subpartition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/01_example_emptying_a_subpartition.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/01_example_emptying_a_subpartition.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/01_example_emptying_a_subpartition.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/18_accessing_partition_table/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/18_accessing_partition_table/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/18_accessing_partition_table/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/18_accessing_partition_table/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/05_handling_stray_values_in_a_list_or_range_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/05_handling_stray_values_in_a_list_or_range_partitioned_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/05_handling_stray_values_in_a_list_or_range_partitioned_table.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/05_handling_stray_values_in_a_list_or_range_partitioned_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/06_specifying_multiple_partitioning_keys_in_a_range_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/06_specifying_multiple_partitioning_keys_in_a_range_partitioned_table.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/06_specifying_multiple_partitioning_keys_in_a_range_partitioned_table.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/06_specifying_multiple_partitioning_keys_in_a_range_partitioned_table.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/01_all_part_tables.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/01_all_part_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/01_all_part_tables.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/01_all_part_tables.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/02_all_tab_partitions.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/02_all_tab_partitions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/02_all_tab_partitions.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/02_all_tab_partitions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/03_all_tab_subpartitions.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/03_all_tab_subpartitions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/03_all_tab_subpartitions.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/03_all_tab_subpartitions.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/04_all_part_key_columns.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/04_all_part_key_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/04_all_part_key_columns.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/04_all_part_key_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/05_all_subpart_key_columns.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/05_all_subpart_key_columns.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/05_all_subpart_key_columns.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/05_all_subpart_key_columns.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/01_table_partitioning_views_reference/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/images/edb_logo.png b/product_docs/docs/epas/15/epas_compat_table_partitioning/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/images/edb_logo.png rename to product_docs/docs/epas/15/epas_compat_table_partitioning/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/images/edb_logo.svg b/product_docs/docs/epas/15/epas_compat_table_partitioning/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_compat_table_partitioning/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_compat_table_partitioning/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_table_partitioning/index.mdx rename to product_docs/docs/epas/15/epas_compat_table_partitioning/index.mdx diff --git a/product_docs/docs/epas/14/epas_compat_tools_guide/02_edb_loader.mdx b/product_docs/docs/epas/15/epas_compat_tools_guide/02_edb_loader.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_tools_guide/02_edb_loader.mdx rename to product_docs/docs/epas/15/epas_compat_tools_guide/02_edb_loader.mdx diff --git a/product_docs/docs/epas/14/epas_compat_tools_guide/03_edb_wrap.mdx b/product_docs/docs/epas/15/epas_compat_tools_guide/03_edb_wrap.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_tools_guide/03_edb_wrap.mdx rename to product_docs/docs/epas/15/epas_compat_tools_guide/03_edb_wrap.mdx diff --git a/product_docs/docs/epas/14/epas_compat_tools_guide/04_dynamic_runtime_instrumentation_tools_architecture_DRITA.mdx b/product_docs/docs/epas/15/epas_compat_tools_guide/04_dynamic_runtime_instrumentation_tools_architecture_DRITA.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_tools_guide/04_dynamic_runtime_instrumentation_tools_architecture_DRITA.mdx rename to product_docs/docs/epas/15/epas_compat_tools_guide/04_dynamic_runtime_instrumentation_tools_architecture_DRITA.mdx diff --git a/product_docs/docs/epas/14/epas_compat_tools_guide/images/Thumbs.db b/product_docs/docs/epas/15/epas_compat_tools_guide/images/Thumbs.db similarity index 100% rename from product_docs/docs/epas/14/epas_compat_tools_guide/images/Thumbs.db rename to product_docs/docs/epas/15/epas_compat_tools_guide/images/Thumbs.db diff --git a/product_docs/docs/epas/14/epas_compat_tools_guide/images/edb_logo.png b/product_docs/docs/epas/15/epas_compat_tools_guide/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_tools_guide/images/edb_logo.png rename to product_docs/docs/epas/15/epas_compat_tools_guide/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_compat_tools_guide/images/edb_logo.svg b/product_docs/docs/epas/15/epas_compat_tools_guide/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_compat_tools_guide/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_compat_tools_guide/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_compat_tools_guide/images/epas_tools_utility_edb_wrap.png b/product_docs/docs/epas/15/epas_compat_tools_guide/images/epas_tools_utility_edb_wrap.png similarity index 100% rename from product_docs/docs/epas/14/epas_compat_tools_guide/images/epas_tools_utility_edb_wrap.png rename to product_docs/docs/epas/15/epas_compat_tools_guide/images/epas_tools_utility_edb_wrap.png diff --git a/product_docs/docs/epas/14/epas_compat_tools_guide/index.mdx b/product_docs/docs/epas/15/epas_compat_tools_guide/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_tools_guide/index.mdx rename to product_docs/docs/epas/15/epas_compat_tools_guide/index.mdx diff --git a/product_docs/docs/epas/14/epas_guide/01_introduction/02_conventions.mdx b/product_docs/docs/epas/15/epas_guide/01_introduction/02_conventions.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/01_introduction/02_conventions.mdx rename to product_docs/docs/epas/15/epas_guide/01_introduction/02_conventions.mdx diff --git a/product_docs/docs/epas/14/epas_guide/01_introduction/03_examples_used.mdx b/product_docs/docs/epas/15/epas_guide/01_introduction/03_examples_used.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/01_introduction/03_examples_used.mdx rename to product_docs/docs/epas/15/epas_guide/01_introduction/03_examples_used.mdx diff --git a/product_docs/docs/epas/14/epas_guide/01_introduction/index.mdx b/product_docs/docs/epas/15/epas_guide/01_introduction/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/01_introduction/index.mdx rename to product_docs/docs/epas/15/epas_guide/01_introduction/index.mdx diff --git a/product_docs/docs/epas/14/epas_guide/02_enhanced_compatibility_features.mdx b/product_docs/docs/epas/15/epas_guide/02_enhanced_compatibility_features.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/02_enhanced_compatibility_features.mdx rename to product_docs/docs/epas/15/epas_guide/02_enhanced_compatibility_features.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/01_setting_new_parameters.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/01_setting_new_parameters.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/01_setting_new_parameters.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/01_setting_new_parameters.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/02_summary_of_configuration_parameters.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/02_summary_of_configuration_parameters.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/02_summary_of_configuration_parameters.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/02_summary_of_configuration_parameters.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/01_shared_buffers.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/01_shared_buffers.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/01_shared_buffers.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/01_shared_buffers.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/02_work_mem.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/02_work_mem.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/02_work_mem.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/02_work_mem.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/03_maintenance_work_mem.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/03_maintenance_work_mem.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/03_maintenance_work_mem.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/03_maintenance_work_mem.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/04_wal_buffers.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/04_wal_buffers.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/04_wal_buffers.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/04_wal_buffers.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/05_checkpoint_segments.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/05_checkpoint_segments.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/05_checkpoint_segments.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/05_checkpoint_segments.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/06_checkpoint_completion_target.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/06_checkpoint_completion_target.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/06_checkpoint_completion_target.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/06_checkpoint_completion_target.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/07_checkpoint_timeout.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/07_checkpoint_timeout.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/07_checkpoint_timeout.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/07_checkpoint_timeout.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/08_max_wal_size.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/08_max_wal_size.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/08_max_wal_size.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/08_max_wal_size.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/09_min_wal_size.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/09_min_wal_size.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/09_min_wal_size.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/09_min_wal_size.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/10_bgwriter_delay.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/10_bgwriter_delay.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/10_bgwriter_delay.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/10_bgwriter_delay.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/11_seq_page_cost.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/11_seq_page_cost.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/11_seq_page_cost.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/11_seq_page_cost.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/12_random_page_cost.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/12_random_page_cost.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/12_random_page_cost.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/12_random_page_cost.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/13_effective_cache_size.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/13_effective_cache_size.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/13_effective_cache_size.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/13_effective_cache_size.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/14_synchronous_commit.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/14_synchronous_commit.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/14_synchronous_commit.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/14_synchronous_commit.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/15_edb_max_spins_per_delay.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/15_edb_max_spins_per_delay.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/15_edb_max_spins_per_delay.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/15_edb_max_spins_per_delay.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/16_pg_prewarm.autoprewarm.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/16_pg_prewarm.autoprewarm.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/16_pg_prewarm.autoprewarm.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/16_pg_prewarm.autoprewarm.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/17_pg_prewarm.autoprewarm_interval.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/17_pg_prewarm.autoprewarm_interval.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/17_pg_prewarm.autoprewarm_interval.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/17_pg_prewarm.autoprewarm_interval.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/index.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/index.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/index.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/02_resource_usage_memory.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/02_resource_usage_memory.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/02_resource_usage_memory.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/02_resource_usage_memory.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/03_resource_usage_edb_resource_manager.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/03_resource_usage_edb_resource_manager.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/03_resource_usage_edb_resource_manager.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/03_resource_usage_edb_resource_manager.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/04_query_tuning.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/04_query_tuning.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/04_query_tuning.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/04_query_tuning.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/05_query_tuning_planner_method_configuration.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/05_query_tuning_planner_method_configuration.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/05_query_tuning_planner_method_configuration.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/05_query_tuning_planner_method_configuration.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/06_reporting_and_logging_what_to_log.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/06_reporting_and_logging_what_to_log.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/06_reporting_and_logging_what_to_log.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/06_reporting_and_logging_what_to_log.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/01_edb_audit.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/01_edb_audit.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/01_edb_audit.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/01_edb_audit.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/02_edb_audit_directory.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/02_edb_audit_directory.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/02_edb_audit_directory.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/02_edb_audit_directory.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/03_edb_audit_filename.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/03_edb_audit_filename.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/03_edb_audit_filename.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/03_edb_audit_filename.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/04_edb_audit_rotation_day.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/04_edb_audit_rotation_day.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/04_edb_audit_rotation_day.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/04_edb_audit_rotation_day.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/05_edb_audit_rotation_size.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/05_edb_audit_rotation_size.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/05_edb_audit_rotation_size.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/05_edb_audit_rotation_size.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/06_edb_audit_rotation_seconds.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/06_edb_audit_rotation_seconds.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/06_edb_audit_rotation_seconds.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/06_edb_audit_rotation_seconds.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/07_edb_audit_connect.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/07_edb_audit_connect.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/07_edb_audit_connect.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/07_edb_audit_connect.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/08_edb_audit_disconnect.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/08_edb_audit_disconnect.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/08_edb_audit_disconnect.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/08_edb_audit_disconnect.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/09_edb_audit_statement.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/09_edb_audit_statement.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/09_edb_audit_statement.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/09_edb_audit_statement.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/10_edb_audit_tag.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/10_edb_audit_tag.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/10_edb_audit_tag.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/10_edb_audit_tag.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/11_edb_audit_destination.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/11_edb_audit_destination.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/11_edb_audit_destination.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/11_edb_audit_destination.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/12_edb_log_every_bulk_value.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/12_edb_log_every_bulk_value.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/12_edb_log_every_bulk_value.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/12_edb_log_every_bulk_value.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/index.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/index.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/07_auditing_settings/index.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/08_ccd_locale_and_formatting.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/08_ccd_locale_and_formatting.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/08_ccd_locale_and_formatting.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/08_ccd_locale_and_formatting.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/09_ccd_statement_behaviour.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/09_ccd_statement_behaviour.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/09_ccd_statement_behaviour.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/09_ccd_statement_behaviour.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/10_ccd_other_defaults.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/10_ccd_other_defaults.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/10_ccd_other_defaults.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/10_ccd_other_defaults.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/11_compatibility_options.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/11_compatibility_options.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/11_compatibility_options.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/11_compatibility_options.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/12_customized_options.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/12_customized_options.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/12_customized_options.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/12_customized_options.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/13_ungrouped.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/13_ungrouped.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/13_ungrouped.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/13_ungrouped.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/14_audit_archiver.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/14_audit_archiver.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/14_audit_archiver.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/14_audit_archiver.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/index.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/index.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/index.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/index.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/01_configuration_parameters/index.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/index.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/01_index_advisor_components.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/01_index_advisor_components.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/01_index_advisor_components.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/01_index_advisor_components.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/02_index_advisor_configuration.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/02_index_advisor_configuration.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/02_index_advisor_configuration.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/02_index_advisor_configuration.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/03_using_index_advisor.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/03_using_index_advisor.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/03_using_index_advisor.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/03_using_index_advisor.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/04_reviewing_the_index_advisor_recommendations.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/04_reviewing_the_index_advisor_recommendations.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/04_reviewing_the_index_advisor_recommendations.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/04_reviewing_the_index_advisor_recommendations.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/05_index_advisor_limitations.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/05_index_advisor_limitations.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/05_index_advisor_limitations.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/05_index_advisor_limitations.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/index.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/02_index_advisor/index.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/index.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/03_sql_profiler.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/03_sql_profiler.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/03_sql_profiler.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/03_sql_profiler.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/04_pgsnmpd.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/04_pgsnmpd.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/04_pgsnmpd.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/04_pgsnmpd.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/01_audit_logging_configuration_parameters.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/01_audit_logging_configuration_parameters.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/01_audit_logging_configuration_parameters.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/01_audit_logging_configuration_parameters.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/02_selecting_sql_statements_to_audit.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/02_selecting_sql_statements_to_audit.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/02_selecting_sql_statements_to_audit.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/02_selecting_sql_statements_to_audit.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/03_enabling_audit_logging.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/03_enabling_audit_logging.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/03_enabling_audit_logging.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/03_enabling_audit_logging.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/05_using_error_codes_to_filter_audit_logs.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/05_using_error_codes_to_filter_audit_logs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/05_using_error_codes_to_filter_audit_logs.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/05_using_error_codes_to_filter_audit_logs.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/06_using_command_tags_to_filter_audit_logs.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/06_using_command_tags_to_filter_audit_logs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/06_using_command_tags_to_filter_audit_logs.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/06_using_command_tags_to_filter_audit_logs.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/07_redacting_passwords_from_audit_logs.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/07_redacting_passwords_from_audit_logs.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/07_redacting_passwords_from_audit_logs.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/07_redacting_passwords_from_audit_logs.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/08_audit_log_archiving.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/08_audit_log_archiving.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/08_audit_log_archiving.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/08_audit_log_archiving.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/09_object_auditing.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/09_object_auditing.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/09_object_auditing.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/09_object_auditing.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/index.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/05_edb_audit_logging/index.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/index.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/06_unicode_collation_algorithm.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/06_unicode_collation_algorithm.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/06_unicode_collation_algorithm.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/06_unicode_collation_algorithm.mdx diff --git a/product_docs/docs/epas/14/epas_guide/03_database_administration/index.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/03_database_administration/index.mdx rename to product_docs/docs/epas/15/epas_guide/03_database_administration/index.mdx diff --git a/product_docs/docs/epas/14/epas_guide/10_edb_resource_manager.mdx b/product_docs/docs/epas/15/epas_guide/10_edb_resource_manager.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/10_edb_resource_manager.mdx rename to product_docs/docs/epas/15/epas_guide/10_edb_resource_manager.mdx diff --git a/product_docs/docs/epas/14/epas_guide/11_libpq_c_library.mdx b/product_docs/docs/epas/15/epas_guide/11_libpq_c_library.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/11_libpq_c_library.mdx rename to product_docs/docs/epas/15/epas_guide/11_libpq_c_library.mdx diff --git a/product_docs/docs/epas/14/epas_guide/12_debugger.mdx b/product_docs/docs/epas/15/epas_guide/12_debugger.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/12_debugger.mdx rename to product_docs/docs/epas/15/epas_guide/12_debugger.mdx diff --git a/product_docs/docs/epas/14/epas_guide/13_performance_analysis_and_tuning.mdx b/product_docs/docs/epas/15/epas_guide/13_performance_analysis_and_tuning.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/13_performance_analysis_and_tuning.mdx rename to product_docs/docs/epas/15/epas_guide/13_performance_analysis_and_tuning.mdx diff --git a/product_docs/docs/epas/14/epas_guide/14_edb_clone_schema.mdx b/product_docs/docs/epas/15/epas_guide/14_edb_clone_schema.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/14_edb_clone_schema.mdx rename to product_docs/docs/epas/15/epas_guide/14_edb_clone_schema.mdx diff --git a/product_docs/docs/epas/14/epas_guide/15_enhanced_sql_and_other_misc_features.mdx b/product_docs/docs/epas/15/epas_guide/15_enhanced_sql_and_other_misc_features.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/15_enhanced_sql_and_other_misc_features.mdx rename to product_docs/docs/epas/15/epas_guide/15_enhanced_sql_and_other_misc_features.mdx diff --git a/product_docs/docs/epas/14/epas_guide/16_system_catalog_tables.mdx b/product_docs/docs/epas/15/epas_guide/16_system_catalog_tables.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/16_system_catalog_tables.mdx rename to product_docs/docs/epas/15/epas_guide/16_system_catalog_tables.mdx diff --git a/product_docs/docs/epas/14/epas_guide/17_advanced_server_keywords.mdx b/product_docs/docs/epas/15/epas_guide/17_advanced_server_keywords.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/17_advanced_server_keywords.mdx rename to product_docs/docs/epas/15/epas_guide/17_advanced_server_keywords.mdx diff --git a/product_docs/docs/epas/14/epas_guide/images/Thumbs.db b/product_docs/docs/epas/15/epas_guide/images/Thumbs.db similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/Thumbs.db rename to product_docs/docs/epas/15/epas_guide/images/Thumbs.db diff --git a/product_docs/docs/epas/14/epas_guide/images/clear_breakpoints.jpg b/product_docs/docs/epas/15/epas_guide/images/clear_breakpoints.jpg similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/clear_breakpoints.jpg rename to product_docs/docs/epas/15/epas_guide/images/clear_breakpoints.jpg diff --git a/product_docs/docs/epas/14/epas_guide/images/debugger_window.png b/product_docs/docs/epas/15/epas_guide/images/debugger_window.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/debugger_window.png rename to product_docs/docs/epas/15/epas_guide/images/debugger_window.png diff --git a/product_docs/docs/epas/14/epas_guide/images/debugging_called_subprogram.png b/product_docs/docs/epas/15/epas_guide/images/debugging_called_subprogram.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/debugging_called_subprogram.png rename to product_docs/docs/epas/15/epas_guide/images/debugging_called_subprogram.png diff --git a/product_docs/docs/epas/14/epas_guide/images/edb_logo.png b/product_docs/docs/epas/15/epas_guide/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/edb_logo.png rename to product_docs/docs/epas/15/epas_guide/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_guide/images/edb_logo.svg b/product_docs/docs/epas/15/epas_guide/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_guide/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_guide/images/exiting_from_debugger.png b/product_docs/docs/epas/15/epas_guide/images/exiting_from_debugger.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/exiting_from_debugger.png rename to product_docs/docs/epas/15/epas_guide/images/exiting_from_debugger.png diff --git a/product_docs/docs/epas/14/epas_guide/images/image3.png b/product_docs/docs/epas/15/epas_guide/images/image3.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/image3.png rename to product_docs/docs/epas/15/epas_guide/images/image3.png diff --git a/product_docs/docs/epas/14/epas_guide/images/local_variables_tab.png b/product_docs/docs/epas/15/epas_guide/images/local_variables_tab.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/local_variables_tab.png rename to product_docs/docs/epas/15/epas_guide/images/local_variables_tab.png diff --git a/product_docs/docs/epas/14/epas_guide/images/main_debugger_window.png b/product_docs/docs/epas/15/epas_guide/images/main_debugger_window.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/main_debugger_window.png rename to product_docs/docs/epas/15/epas_guide/images/main_debugger_window.png diff --git a/product_docs/docs/epas/14/epas_guide/images/messages_tab.png b/product_docs/docs/epas/15/epas_guide/images/messages_tab.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/messages_tab.png rename to product_docs/docs/epas/15/epas_guide/images/messages_tab.png diff --git a/product_docs/docs/epas/14/epas_guide/images/open_client_library.png b/product_docs/docs/epas/15/epas_guide/images/open_client_library.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/open_client_library.png rename to product_docs/docs/epas/15/epas_guide/images/open_client_library.png diff --git a/product_docs/docs/epas/14/epas_guide/images/parameters_tab.png b/product_docs/docs/epas/15/epas_guide/images/parameters_tab.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/parameters_tab.png rename to product_docs/docs/epas/15/epas_guide/images/parameters_tab.png diff --git a/product_docs/docs/epas/14/epas_guide/images/program_body.png b/product_docs/docs/epas/15/epas_guide/images/program_body.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/program_body.png rename to product_docs/docs/epas/15/epas_guide/images/program_body.png diff --git a/product_docs/docs/epas/14/epas_guide/images/results_tab.png b/product_docs/docs/epas/15/epas_guide/images/results_tab.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/results_tab.png rename to product_docs/docs/epas/15/epas_guide/images/results_tab.png diff --git a/product_docs/docs/epas/14/epas_guide/images/setting_global_breakpoint_from_left-hand_margin.png b/product_docs/docs/epas/15/epas_guide/images/setting_global_breakpoint_from_left-hand_margin.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/setting_global_breakpoint_from_left-hand_margin.png rename to product_docs/docs/epas/15/epas_guide/images/setting_global_breakpoint_from_left-hand_margin.png diff --git a/product_docs/docs/epas/14/epas_guide/images/setting_global_breakpoint_from_object_menu.png b/product_docs/docs/epas/15/epas_guide/images/setting_global_breakpoint_from_object_menu.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/setting_global_breakpoint_from_object_menu.png rename to product_docs/docs/epas/15/epas_guide/images/setting_global_breakpoint_from_object_menu.png diff --git a/product_docs/docs/epas/14/epas_guide/images/stack_tab.png b/product_docs/docs/epas/15/epas_guide/images/stack_tab.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/stack_tab.png rename to product_docs/docs/epas/15/epas_guide/images/stack_tab.png diff --git a/product_docs/docs/epas/14/epas_guide/images/starting_the_debugger_from_context_menu.png b/product_docs/docs/epas/15/epas_guide/images/starting_the_debugger_from_context_menu.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/starting_the_debugger_from_context_menu.png rename to product_docs/docs/epas/15/epas_guide/images/starting_the_debugger_from_context_menu.png diff --git a/product_docs/docs/epas/14/epas_guide/images/starting_the_debugger_from_object_menu.png b/product_docs/docs/epas/15/epas_guide/images/starting_the_debugger_from_object_menu.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/starting_the_debugger_from_object_menu.png rename to product_docs/docs/epas/15/epas_guide/images/starting_the_debugger_from_object_menu.png diff --git a/product_docs/docs/epas/14/epas_guide/images/toolbar_icons.jpg b/product_docs/docs/epas/15/epas_guide/images/toolbar_icons.jpg similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/toolbar_icons.jpg rename to product_docs/docs/epas/15/epas_guide/images/toolbar_icons.jpg diff --git a/product_docs/docs/epas/14/epas_guide/images/waiting_invocation_program_debugged.png b/product_docs/docs/epas/15/epas_guide/images/waiting_invocation_program_debugged.png similarity index 100% rename from product_docs/docs/epas/14/epas_guide/images/waiting_invocation_program_debugged.png rename to product_docs/docs/epas/15/epas_guide/images/waiting_invocation_program_debugged.png diff --git a/product_docs/docs/epas/14/epas_guide/index.mdx b/product_docs/docs/epas/15/epas_guide/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_guide/index.mdx rename to product_docs/docs/epas/15/epas_guide/index.mdx diff --git a/product_docs/docs/epas/14/epas_limitations/index.mdx b/product_docs/docs/epas/15/epas_limitations/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_limitations/index.mdx rename to product_docs/docs/epas/15/epas_limitations/index.mdx diff --git a/product_docs/docs/epas/14/epas_platform_support/index.mdx b/product_docs/docs/epas/15/epas_platform_support/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_platform_support/index.mdx rename to product_docs/docs/epas/15/epas_platform_support/index.mdx diff --git a/product_docs/docs/epas/14/epas_qs_linux_7/images/edb_logo.png b/product_docs/docs/epas/15/epas_qs_linux_7/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_linux_7/images/edb_logo.png rename to product_docs/docs/epas/15/epas_qs_linux_7/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_qs_linux_7/images/edb_logo.svg b/product_docs/docs/epas/15/epas_qs_linux_7/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_qs_linux_7/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_qs_linux_7/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_qs_linux_7/index.mdx b/product_docs/docs/epas/15/epas_qs_linux_7/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_qs_linux_7/index.mdx rename to product_docs/docs/epas/15/epas_qs_linux_7/index.mdx diff --git a/product_docs/docs/epas/14/epas_qs_linux_8/images/edb_logo.png b/product_docs/docs/epas/15/epas_qs_linux_8/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_linux_8/images/edb_logo.png rename to product_docs/docs/epas/15/epas_qs_linux_8/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_qs_linux_8/images/edb_logo.svg b/product_docs/docs/epas/15/epas_qs_linux_8/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_qs_linux_8/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_qs_linux_8/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_qs_linux_8/index.mdx b/product_docs/docs/epas/15/epas_qs_linux_8/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_qs_linux_8/index.mdx rename to product_docs/docs/epas/15/epas_qs_linux_8/index.mdx diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/additional_configuration.png b/product_docs/docs/epas/15/epas_qs_windows/images/additional_configuration.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/additional_configuration.png rename to product_docs/docs/epas/15/epas_qs_windows/images/additional_configuration.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/additional_directories.png b/product_docs/docs/epas/15/epas_qs_windows/images/additional_directories.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/additional_directories.png rename to product_docs/docs/epas/15/epas_qs_windows/images/additional_directories.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/advanced_server_dialect.png b/product_docs/docs/epas/15/epas_qs_windows/images/advanced_server_dialect.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/advanced_server_dialect.png rename to product_docs/docs/epas/15/epas_qs_windows/images/advanced_server_dialect.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/advanced_server_installation_completion.png b/product_docs/docs/epas/15/epas_qs_windows/images/advanced_server_installation_completion.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/advanced_server_installation_completion.png rename to product_docs/docs/epas/15/epas_qs_windows/images/advanced_server_installation_completion.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/advanced_server_installer_welcome.png b/product_docs/docs/epas/15/epas_qs_windows/images/advanced_server_installer_welcome.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/advanced_server_installer_welcome.png rename to product_docs/docs/epas/15/epas_qs_windows/images/advanced_server_installer_welcome.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/dynatune_dynamic_tuning_server_utilization.png b/product_docs/docs/epas/15/epas_qs_windows/images/dynatune_dynamic_tuning_server_utilization.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/dynatune_dynamic_tuning_server_utilization.png rename to product_docs/docs/epas/15/epas_qs_windows/images/dynatune_dynamic_tuning_server_utilization.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/dynatune_dynamic_tuning_workload_profile.png b/product_docs/docs/epas/15/epas_qs_windows/images/dynatune_dynamic_tuning_workload_profile.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/dynatune_dynamic_tuning_workload_profile.png rename to product_docs/docs/epas/15/epas_qs_windows/images/dynatune_dynamic_tuning_workload_profile.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/edb_logo.png b/product_docs/docs/epas/15/epas_qs_windows/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/edb_logo.png rename to product_docs/docs/epas/15/epas_qs_windows/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/edb_logo.svg b/product_docs/docs/epas/15/epas_qs_windows/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_qs_windows/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/enterprisedb_license_agreement.png b/product_docs/docs/epas/15/epas_qs_windows/images/enterprisedb_license_agreement.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/enterprisedb_license_agreement.png rename to product_docs/docs/epas/15/epas_qs_windows/images/enterprisedb_license_agreement.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/installation_directory.png b/product_docs/docs/epas/15/epas_qs_windows/images/installation_directory.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/installation_directory.png rename to product_docs/docs/epas/15/epas_qs_windows/images/installation_directory.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/installing_advanced_server.png b/product_docs/docs/epas/15/epas_qs_windows/images/installing_advanced_server.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/installing_advanced_server.png rename to product_docs/docs/epas/15/epas_qs_windows/images/installing_advanced_server.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/password_window.png b/product_docs/docs/epas/15/epas_qs_windows/images/password_window.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/password_window.png rename to product_docs/docs/epas/15/epas_qs_windows/images/password_window.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/pre_installation_summary.png b/product_docs/docs/epas/15/epas_qs_windows/images/pre_installation_summary.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/pre_installation_summary.png rename to product_docs/docs/epas/15/epas_qs_windows/images/pre_installation_summary.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/ready_to_install.png b/product_docs/docs/epas/15/epas_qs_windows/images/ready_to_install.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/ready_to_install.png rename to product_docs/docs/epas/15/epas_qs_windows/images/ready_to_install.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/select_components.png b/product_docs/docs/epas/15/epas_qs_windows/images/select_components.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/select_components.png rename to product_docs/docs/epas/15/epas_qs_windows/images/select_components.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/setup_wizard.png b/product_docs/docs/epas/15/epas_qs_windows/images/setup_wizard.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/setup_wizard.png rename to product_docs/docs/epas/15/epas_qs_windows/images/setup_wizard.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/images/update_notification_service.png b/product_docs/docs/epas/15/epas_qs_windows/images/update_notification_service.png similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/images/update_notification_service.png rename to product_docs/docs/epas/15/epas_qs_windows/images/update_notification_service.png diff --git a/product_docs/docs/epas/14/epas_qs_windows/index.mdx b/product_docs/docs/epas/15/epas_qs_windows/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_qs_windows/index.mdx rename to product_docs/docs/epas/15/epas_qs_windows/index.mdx diff --git a/product_docs/docs/epas/14/epas_rel_notes/19_epas14.2.1_rel_notes.mdx b/product_docs/docs/epas/15/epas_rel_notes/19_epas14.2.1_rel_notes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_rel_notes/19_epas14.2.1_rel_notes.mdx rename to product_docs/docs/epas/15/epas_rel_notes/19_epas14.2.1_rel_notes.mdx diff --git a/product_docs/docs/epas/14/epas_rel_notes/20_epas14_rel_notes.mdx b/product_docs/docs/epas/15/epas_rel_notes/20_epas14_rel_notes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_rel_notes/20_epas14_rel_notes.mdx rename to product_docs/docs/epas/15/epas_rel_notes/20_epas14_rel_notes.mdx diff --git a/product_docs/docs/epas/14/epas_rel_notes/epas14_3_0_rel_notes.mdx b/product_docs/docs/epas/15/epas_rel_notes/epas14_3_0_rel_notes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_rel_notes/epas14_3_0_rel_notes.mdx rename to product_docs/docs/epas/15/epas_rel_notes/epas14_3_0_rel_notes.mdx diff --git a/product_docs/docs/epas/14/epas_rel_notes/epas14_4_0_rel_notes.mdx b/product_docs/docs/epas/15/epas_rel_notes/epas14_4_0_rel_notes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_rel_notes/epas14_4_0_rel_notes.mdx rename to product_docs/docs/epas/15/epas_rel_notes/epas14_4_0_rel_notes.mdx diff --git a/product_docs/docs/epas/14/epas_rel_notes/epas14_5_0_rel_notes.mdx b/product_docs/docs/epas/15/epas_rel_notes/epas14_5_0_rel_notes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_rel_notes/epas14_5_0_rel_notes.mdx rename to product_docs/docs/epas/15/epas_rel_notes/epas14_5_0_rel_notes.mdx diff --git a/product_docs/docs/epas/14/epas_rel_notes/epas14_6_0_rel_notes.mdx b/product_docs/docs/epas/15/epas_rel_notes/epas14_6_0_rel_notes.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_rel_notes/epas14_6_0_rel_notes.mdx rename to product_docs/docs/epas/15/epas_rel_notes/epas14_6_0_rel_notes.mdx diff --git a/product_docs/docs/epas/14/epas_rel_notes/images/edb_logo.png b/product_docs/docs/epas/15/epas_rel_notes/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_rel_notes/images/edb_logo.png rename to product_docs/docs/epas/15/epas_rel_notes/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_rel_notes/images/edb_logo.svg b/product_docs/docs/epas/15/epas_rel_notes/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_rel_notes/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_rel_notes/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_rel_notes/index.mdx b/product_docs/docs/epas/15/epas_rel_notes/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_rel_notes/index.mdx rename to product_docs/docs/epas/15/epas_rel_notes/index.mdx diff --git a/product_docs/docs/epas/14/epas_requirements/index.mdx b/product_docs/docs/epas/15/epas_requirements/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_requirements/index.mdx rename to product_docs/docs/epas/15/epas_requirements/index.mdx diff --git a/product_docs/docs/epas/14/epas_security_guide/02_protecting_against_sql_injection_attacks/01_sql_protect_overview.mdx b/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/01_sql_protect_overview.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_security_guide/02_protecting_against_sql_injection_attacks/01_sql_protect_overview.mdx rename to product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/01_sql_protect_overview.mdx diff --git a/product_docs/docs/epas/14/epas_security_guide/02_protecting_against_sql_injection_attacks/02_configuring_sql_protect.mdx b/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/02_configuring_sql_protect.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_security_guide/02_protecting_against_sql_injection_attacks/02_configuring_sql_protect.mdx rename to product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/02_configuring_sql_protect.mdx diff --git a/product_docs/docs/epas/14/epas_security_guide/02_protecting_against_sql_injection_attacks/03_common_maintenance_operations.mdx b/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/03_common_maintenance_operations.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_security_guide/02_protecting_against_sql_injection_attacks/03_common_maintenance_operations.mdx rename to product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/03_common_maintenance_operations.mdx diff --git a/product_docs/docs/epas/14/epas_security_guide/02_protecting_against_sql_injection_attacks/04_backing_up_restoring_sql_protect.mdx b/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/04_backing_up_restoring_sql_protect.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_security_guide/02_protecting_against_sql_injection_attacks/04_backing_up_restoring_sql_protect.mdx rename to product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/04_backing_up_restoring_sql_protect.mdx diff --git a/product_docs/docs/epas/14/epas_security_guide/02_protecting_against_sql_injection_attacks/index.mdx b/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_security_guide/02_protecting_against_sql_injection_attacks/index.mdx rename to product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/index.mdx diff --git a/product_docs/docs/epas/14/epas_security_guide/03_virtual_private_database.mdx b/product_docs/docs/epas/15/epas_security_guide/03_virtual_private_database.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_security_guide/03_virtual_private_database.mdx rename to product_docs/docs/epas/15/epas_security_guide/03_virtual_private_database.mdx diff --git a/product_docs/docs/epas/14/epas_security_guide/04_sslutils.mdx b/product_docs/docs/epas/15/epas_security_guide/04_sslutils.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_security_guide/04_sslutils.mdx rename to product_docs/docs/epas/15/epas_security_guide/04_sslutils.mdx diff --git a/product_docs/docs/epas/14/epas_security_guide/05_data_redaction.mdx b/product_docs/docs/epas/15/epas_security_guide/05_data_redaction.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_security_guide/05_data_redaction.mdx rename to product_docs/docs/epas/15/epas_security_guide/05_data_redaction.mdx diff --git a/product_docs/docs/epas/14/epas_security_guide/images/edb_logo.png b/product_docs/docs/epas/15/epas_security_guide/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/epas_security_guide/images/edb_logo.png rename to product_docs/docs/epas/15/epas_security_guide/images/edb_logo.png diff --git a/product_docs/docs/epas/14/epas_security_guide/images/edb_logo.svg b/product_docs/docs/epas/15/epas_security_guide/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/epas_security_guide/images/edb_logo.svg rename to product_docs/docs/epas/15/epas_security_guide/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/epas_security_guide/index.mdx b/product_docs/docs/epas/15/epas_security_guide/index.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_security_guide/index.mdx rename to product_docs/docs/epas/15/epas_security_guide/index.mdx diff --git a/product_docs/docs/epas/14/index.mdx b/product_docs/docs/epas/15/index.mdx similarity index 100% rename from product_docs/docs/epas/14/index.mdx rename to product_docs/docs/epas/15/index.mdx diff --git a/product_docs/docs/epas/14/installing/images/connect_to_epas_server.png b/product_docs/docs/epas/15/installing/images/connect_to_epas_server.png similarity index 100% rename from product_docs/docs/epas/14/installing/images/connect_to_epas_server.png rename to product_docs/docs/epas/15/installing/images/connect_to_epas_server.png diff --git a/product_docs/docs/epas/14/installing/images/edb_logo.png b/product_docs/docs/epas/15/installing/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/installing/images/edb_logo.png rename to product_docs/docs/epas/15/installing/images/edb_logo.png diff --git a/product_docs/docs/epas/14/installing/images/edb_logo.svg b/product_docs/docs/epas/15/installing/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/installing/images/edb_logo.svg rename to product_docs/docs/epas/15/installing/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/installing/images/epas_linux_advanced_server_service_configuration_file.png b/product_docs/docs/epas/15/installing/images/epas_linux_advanced_server_service_configuration_file.png similarity index 100% rename from product_docs/docs/epas/14/installing/images/epas_linux_advanced_server_service_configuration_file.png rename to product_docs/docs/epas/15/installing/images/epas_linux_advanced_server_service_configuration_file.png diff --git a/product_docs/docs/epas/14/installing/images/pgadmin4_from_applications_menu.png b/product_docs/docs/epas/15/installing/images/pgadmin4_from_applications_menu.png similarity index 100% rename from product_docs/docs/epas/14/installing/images/pgadmin4_from_applications_menu.png rename to product_docs/docs/epas/15/installing/images/pgadmin4_from_applications_menu.png diff --git a/product_docs/docs/epas/14/installing/index.mdx b/product_docs/docs/epas/15/installing/index.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/index.mdx rename to product_docs/docs/epas/15/installing/index.mdx diff --git a/product_docs/docs/epas/14/installing/linux_install_details/component_locations.mdx b/product_docs/docs/epas/15/installing/linux_install_details/component_locations.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_install_details/component_locations.mdx rename to product_docs/docs/epas/15/installing/linux_install_details/component_locations.mdx diff --git a/product_docs/docs/epas/14/installing/linux_install_details/index.mdx b/product_docs/docs/epas/15/installing/linux_install_details/index.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_install_details/index.mdx rename to product_docs/docs/epas/15/installing/linux_install_details/index.mdx diff --git a/product_docs/docs/epas/14/installing/linux_install_details/installing_epas_using_local_repository.mdx b/product_docs/docs/epas/15/installing/linux_install_details/installing_epas_using_local_repository.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_install_details/installing_epas_using_local_repository.mdx rename to product_docs/docs/epas/15/installing/linux_install_details/installing_epas_using_local_repository.mdx diff --git a/product_docs/docs/epas/14/installing/linux_install_details/managing_an_advanced_server_installation.mdx b/product_docs/docs/epas/15/installing/linux_install_details/managing_an_advanced_server_installation.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_install_details/managing_an_advanced_server_installation.mdx rename to product_docs/docs/epas/15/installing/linux_install_details/managing_an_advanced_server_installation.mdx diff --git a/product_docs/docs/epas/14/installing/linux_install_details/rpm_packages.mdx b/product_docs/docs/epas/15/installing/linux_install_details/rpm_packages.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_install_details/rpm_packages.mdx rename to product_docs/docs/epas/15/installing/linux_install_details/rpm_packages.mdx diff --git a/product_docs/docs/epas/14/installing/linux_ppc64le/epas_rhel_7.mdx b/product_docs/docs/epas/15/installing/linux_ppc64le/epas_rhel_7.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_ppc64le/epas_rhel_7.mdx rename to product_docs/docs/epas/15/installing/linux_ppc64le/epas_rhel_7.mdx diff --git a/product_docs/docs/epas/14/installing/linux_ppc64le/epas_rhel_8.mdx b/product_docs/docs/epas/15/installing/linux_ppc64le/epas_rhel_8.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_ppc64le/epas_rhel_8.mdx rename to product_docs/docs/epas/15/installing/linux_ppc64le/epas_rhel_8.mdx diff --git a/product_docs/docs/epas/14/installing/linux_ppc64le/epas_sles_12.mdx b/product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_12.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_ppc64le/epas_sles_12.mdx rename to product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_12.mdx diff --git a/product_docs/docs/epas/14/installing/linux_ppc64le/epas_sles_15.mdx b/product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_15.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_ppc64le/epas_sles_15.mdx rename to product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_15.mdx diff --git a/product_docs/docs/epas/14/installing/linux_ppc64le/index.mdx b/product_docs/docs/epas/15/installing/linux_ppc64le/index.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_ppc64le/index.mdx rename to product_docs/docs/epas/15/installing/linux_ppc64le/index.mdx diff --git a/product_docs/docs/epas/14/installing/linux_x86_64/epas_centos_7.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_centos_7.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_x86_64/epas_centos_7.mdx rename to product_docs/docs/epas/15/installing/linux_x86_64/epas_centos_7.mdx diff --git a/product_docs/docs/epas/14/installing/linux_x86_64/epas_debian_10.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_debian_10.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_x86_64/epas_debian_10.mdx rename to product_docs/docs/epas/15/installing/linux_x86_64/epas_debian_10.mdx diff --git a/product_docs/docs/epas/14/installing/linux_x86_64/epas_debian_11.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_debian_11.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_x86_64/epas_debian_11.mdx rename to product_docs/docs/epas/15/installing/linux_x86_64/epas_debian_11.mdx diff --git a/product_docs/docs/epas/14/installing/linux_x86_64/epas_other_linux_8.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_other_linux_8.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_x86_64/epas_other_linux_8.mdx rename to product_docs/docs/epas/15/installing/linux_x86_64/epas_other_linux_8.mdx diff --git a/product_docs/docs/epas/14/installing/linux_x86_64/epas_rhel_7.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_7.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_x86_64/epas_rhel_7.mdx rename to product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_7.mdx diff --git a/product_docs/docs/epas/14/installing/linux_x86_64/epas_rhel_8.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_8.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_x86_64/epas_rhel_8.mdx rename to product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_8.mdx diff --git a/product_docs/docs/epas/14/installing/linux_x86_64/epas_sles_12.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_12.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_x86_64/epas_sles_12.mdx rename to product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_12.mdx diff --git a/product_docs/docs/epas/14/installing/linux_x86_64/epas_sles_15.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_15.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_x86_64/epas_sles_15.mdx rename to product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_15.mdx diff --git a/product_docs/docs/epas/14/installing/linux_x86_64/epas_ubuntu_18.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_18.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_x86_64/epas_ubuntu_18.mdx rename to product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_18.mdx diff --git a/product_docs/docs/epas/14/installing/linux_x86_64/epas_ubuntu_20.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_20.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_x86_64/epas_ubuntu_20.mdx rename to product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_20.mdx diff --git a/product_docs/docs/epas/14/installing/linux_x86_64/index.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/index.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/linux_x86_64/index.mdx rename to product_docs/docs/epas/15/installing/linux_x86_64/index.mdx diff --git a/product_docs/docs/epas/14/installing/windows/images/accessing_configuration_files.png b/product_docs/docs/epas/15/installing/windows/images/accessing_configuration_files.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/accessing_configuration_files.png rename to product_docs/docs/epas/15/installing/windows/images/accessing_configuration_files.png diff --git a/product_docs/docs/epas/14/installing/windows/images/additional_configuration.png b/product_docs/docs/epas/15/installing/windows/images/additional_configuration.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/additional_configuration.png rename to product_docs/docs/epas/15/installing/windows/images/additional_configuration.png diff --git a/product_docs/docs/epas/14/installing/windows/images/additional_directories.png b/product_docs/docs/epas/15/installing/windows/images/additional_directories.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/additional_directories.png rename to product_docs/docs/epas/15/installing/windows/images/additional_directories.png diff --git a/product_docs/docs/epas/14/installing/windows/images/advanced_server_dialect.png b/product_docs/docs/epas/15/installing/windows/images/advanced_server_dialect.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/advanced_server_dialect.png rename to product_docs/docs/epas/15/installing/windows/images/advanced_server_dialect.png diff --git a/product_docs/docs/epas/14/installing/windows/images/advanced_server_installation_completion.png b/product_docs/docs/epas/15/installing/windows/images/advanced_server_installation_completion.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/advanced_server_installation_completion.png rename to product_docs/docs/epas/15/installing/windows/images/advanced_server_installation_completion.png diff --git a/product_docs/docs/epas/14/installing/windows/images/advanced_server_installer_welcome.png b/product_docs/docs/epas/15/installing/windows/images/advanced_server_installer_welcome.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/advanced_server_installer_welcome.png rename to product_docs/docs/epas/15/installing/windows/images/advanced_server_installer_welcome.png diff --git a/product_docs/docs/epas/14/installing/windows/images/advanced_server_services.png b/product_docs/docs/epas/15/installing/windows/images/advanced_server_services.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/advanced_server_services.png rename to product_docs/docs/epas/15/installing/windows/images/advanced_server_services.png diff --git a/product_docs/docs/epas/14/installing/windows/images/advanced_server_startup.png b/product_docs/docs/epas/15/installing/windows/images/advanced_server_startup.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/advanced_server_startup.png rename to product_docs/docs/epas/15/installing/windows/images/advanced_server_startup.png diff --git a/product_docs/docs/epas/14/installing/windows/images/connecting_server.png b/product_docs/docs/epas/15/installing/windows/images/connecting_server.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/connecting_server.png rename to product_docs/docs/epas/15/installing/windows/images/connecting_server.png diff --git a/product_docs/docs/epas/14/installing/windows/images/connecting_to_advanced_server_database.png b/product_docs/docs/epas/15/installing/windows/images/connecting_to_advanced_server_database.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/connecting_to_advanced_server_database.png rename to product_docs/docs/epas/15/installing/windows/images/connecting_to_advanced_server_database.png diff --git a/product_docs/docs/epas/14/installing/windows/images/connecting_to_server.png b/product_docs/docs/epas/15/installing/windows/images/connecting_to_server.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/connecting_to_server.png rename to product_docs/docs/epas/15/installing/windows/images/connecting_to_server.png diff --git a/product_docs/docs/epas/14/installing/windows/images/download_complete.png b/product_docs/docs/epas/15/installing/windows/images/download_complete.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/download_complete.png rename to product_docs/docs/epas/15/installing/windows/images/download_complete.png diff --git a/product_docs/docs/epas/14/installing/windows/images/dynatune_dynamic_tuning_server_utilization.png b/product_docs/docs/epas/15/installing/windows/images/dynatune_dynamic_tuning_server_utilization.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/dynatune_dynamic_tuning_server_utilization.png rename to product_docs/docs/epas/15/installing/windows/images/dynatune_dynamic_tuning_server_utilization.png diff --git a/product_docs/docs/epas/14/installing/windows/images/dynatune_dynamic_tuning_workload_profile.png b/product_docs/docs/epas/15/installing/windows/images/dynatune_dynamic_tuning_workload_profile.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/dynatune_dynamic_tuning_workload_profile.png rename to product_docs/docs/epas/15/installing/windows/images/dynatune_dynamic_tuning_workload_profile.png diff --git a/product_docs/docs/epas/14/installing/windows/images/edb_logo.png b/product_docs/docs/epas/15/installing/windows/images/edb_logo.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/edb_logo.png rename to product_docs/docs/epas/15/installing/windows/images/edb_logo.png diff --git a/product_docs/docs/epas/14/installing/windows/images/edb_logo.svg b/product_docs/docs/epas/15/installing/windows/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/edb_logo.svg rename to product_docs/docs/epas/15/installing/windows/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/installing/windows/images/enterprisedb_license_agreement.png b/product_docs/docs/epas/15/installing/windows/images/enterprisedb_license_agreement.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/enterprisedb_license_agreement.png rename to product_docs/docs/epas/15/installing/windows/images/enterprisedb_license_agreement.png diff --git a/product_docs/docs/epas/14/installing/windows/images/enterprisedb_technical_alert.png b/product_docs/docs/epas/15/installing/windows/images/enterprisedb_technical_alert.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/enterprisedb_technical_alert.png rename to product_docs/docs/epas/15/installing/windows/images/enterprisedb_technical_alert.png diff --git a/product_docs/docs/epas/14/installing/windows/images/installation_directory.png b/product_docs/docs/epas/15/installing/windows/images/installation_directory.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/installation_directory.png rename to product_docs/docs/epas/15/installing/windows/images/installation_directory.png diff --git a/product_docs/docs/epas/14/installing/windows/images/installing_advanced_server.png b/product_docs/docs/epas/15/installing/windows/images/installing_advanced_server.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/installing_advanced_server.png rename to product_docs/docs/epas/15/installing/windows/images/installing_advanced_server.png diff --git a/product_docs/docs/epas/14/installing/windows/images/password_window.png b/product_docs/docs/epas/15/installing/windows/images/password_window.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/password_window.png rename to product_docs/docs/epas/15/installing/windows/images/password_window.png diff --git a/product_docs/docs/epas/14/installing/windows/images/pgAdmin_installation_directory.png b/product_docs/docs/epas/15/installing/windows/images/pgAdmin_installation_directory.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/pgAdmin_installation_directory.png rename to product_docs/docs/epas/15/installing/windows/images/pgAdmin_installation_directory.png diff --git a/product_docs/docs/epas/14/installing/windows/images/pgAdmin_welcome.png b/product_docs/docs/epas/15/installing/windows/images/pgAdmin_welcome.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/pgAdmin_welcome.png rename to product_docs/docs/epas/15/installing/windows/images/pgAdmin_welcome.png diff --git a/product_docs/docs/epas/14/installing/windows/images/pgadmin4_client_dashboard.png b/product_docs/docs/epas/15/installing/windows/images/pgadmin4_client_dashboard.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/pgadmin4_client_dashboard.png rename to product_docs/docs/epas/15/installing/windows/images/pgadmin4_client_dashboard.png diff --git a/product_docs/docs/epas/14/installing/windows/images/pgadmin_installation.png b/product_docs/docs/epas/15/installing/windows/images/pgadmin_installation.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/pgadmin_installation.png rename to product_docs/docs/epas/15/installing/windows/images/pgadmin_installation.png diff --git a/product_docs/docs/epas/14/installing/windows/images/pre_installation_summary.png b/product_docs/docs/epas/15/installing/windows/images/pre_installation_summary.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/pre_installation_summary.png rename to product_docs/docs/epas/15/installing/windows/images/pre_installation_summary.png diff --git a/product_docs/docs/epas/14/installing/windows/images/proxy_servers.png b/product_docs/docs/epas/15/installing/windows/images/proxy_servers.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/proxy_servers.png rename to product_docs/docs/epas/15/installing/windows/images/proxy_servers.png diff --git a/product_docs/docs/epas/14/installing/windows/images/ready_to_install.png b/product_docs/docs/epas/15/installing/windows/images/ready_to_install.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/ready_to_install.png rename to product_docs/docs/epas/15/installing/windows/images/ready_to_install.png diff --git a/product_docs/docs/epas/14/installing/windows/images/select_components.png b/product_docs/docs/epas/15/installing/windows/images/select_components.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/select_components.png rename to product_docs/docs/epas/15/installing/windows/images/select_components.png diff --git a/product_docs/docs/epas/14/installing/windows/images/setup_wizard.png b/product_docs/docs/epas/15/installing/windows/images/setup_wizard.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/setup_wizard.png rename to product_docs/docs/epas/15/installing/windows/images/setup_wizard.png diff --git a/product_docs/docs/epas/14/installing/windows/images/stackbuilder_category_AS.png b/product_docs/docs/epas/15/installing/windows/images/stackbuilder_category_AS.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/stackbuilder_category_AS.png rename to product_docs/docs/epas/15/installing/windows/images/stackbuilder_category_AS.png diff --git a/product_docs/docs/epas/14/installing/windows/images/stackbuilder_missing_pgAdmin.png b/product_docs/docs/epas/15/installing/windows/images/stackbuilder_missing_pgAdmin.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/stackbuilder_missing_pgAdmin.png rename to product_docs/docs/epas/15/installing/windows/images/stackbuilder_missing_pgAdmin.png diff --git a/product_docs/docs/epas/14/installing/windows/images/stackbuilder_plus_completed_installation.png b/product_docs/docs/epas/15/installing/windows/images/stackbuilder_plus_completed_installation.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/stackbuilder_plus_completed_installation.png rename to product_docs/docs/epas/15/installing/windows/images/stackbuilder_plus_completed_installation.png diff --git a/product_docs/docs/epas/14/installing/windows/images/stackbuilder_plus_module_selection.png b/product_docs/docs/epas/15/installing/windows/images/stackbuilder_plus_module_selection.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/stackbuilder_plus_module_selection.png rename to product_docs/docs/epas/15/installing/windows/images/stackbuilder_plus_module_selection.png diff --git a/product_docs/docs/epas/14/installing/windows/images/stackbuilder_plus_welcome.png b/product_docs/docs/epas/15/installing/windows/images/stackbuilder_plus_welcome.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/stackbuilder_plus_welcome.png rename to product_docs/docs/epas/15/installing/windows/images/stackbuilder_plus_welcome.png diff --git a/product_docs/docs/epas/14/installing/windows/images/summary_window_displaying_selected_packages.png b/product_docs/docs/epas/15/installing/windows/images/summary_window_displaying_selected_packages.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/summary_window_displaying_selected_packages.png rename to product_docs/docs/epas/15/installing/windows/images/summary_window_displaying_selected_packages.png diff --git a/product_docs/docs/epas/14/installing/windows/images/update_notification_service.png b/product_docs/docs/epas/15/installing/windows/images/update_notification_service.png similarity index 100% rename from product_docs/docs/epas/14/installing/windows/images/update_notification_service.png rename to product_docs/docs/epas/15/installing/windows/images/update_notification_service.png diff --git a/product_docs/docs/epas/14/installing/windows/index.mdx b/product_docs/docs/epas/15/installing/windows/index.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/index.mdx rename to product_docs/docs/epas/15/installing/windows/index.mdx diff --git a/product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/index.mdx b/product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/index.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/index.mdx rename to product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/index.mdx diff --git a/product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/index.mdx b/product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/index.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/index.mdx rename to product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/index.mdx diff --git a/product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/performing_an_installation_with_limited_privileges.mdx b/product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/performing_an_installation_with_limited_privileges.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/performing_an_installation_with_limited_privileges.mdx rename to product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/performing_an_installation_with_limited_privileges.mdx diff --git a/product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/performing_an_unattended_installation.mdx b/product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/performing_an_unattended_installation.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/performing_an_unattended_installation.mdx rename to product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/performing_an_unattended_installation.mdx diff --git a/product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/reference_command_line_options.mdx b/product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/reference_command_line_options.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/reference_command_line_options.mdx rename to product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/invoking_the_graphical_installer_from_the_command_line/reference_command_line_options.mdx diff --git a/product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/performing_a_graphical_installation_on_windows.mdx b/product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/performing_a_graphical_installation_on_windows.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/performing_a_graphical_installation_on_windows.mdx rename to product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/performing_a_graphical_installation_on_windows.mdx diff --git a/product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/using_stackbuilder_plus.mdx b/product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/using_stackbuilder_plus.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/installing_advanced_server_with_the_interactive_installer/using_stackbuilder_plus.mdx rename to product_docs/docs/epas/15/installing/windows/installing_advanced_server_with_the_interactive_installer/using_stackbuilder_plus.mdx diff --git a/product_docs/docs/epas/14/installing/windows/managing_an_advanced_server_installation/configuring_epas.mdx b/product_docs/docs/epas/15/installing/windows/managing_an_advanced_server_installation/configuring_epas.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/managing_an_advanced_server_installation/configuring_epas.mdx rename to product_docs/docs/epas/15/installing/windows/managing_an_advanced_server_installation/configuring_epas.mdx diff --git a/product_docs/docs/epas/14/installing/windows/managing_an_advanced_server_installation/controlling_server_startup_behavior_on_windows.mdx b/product_docs/docs/epas/15/installing/windows/managing_an_advanced_server_installation/controlling_server_startup_behavior_on_windows.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/managing_an_advanced_server_installation/controlling_server_startup_behavior_on_windows.mdx rename to product_docs/docs/epas/15/installing/windows/managing_an_advanced_server_installation/controlling_server_startup_behavior_on_windows.mdx diff --git a/product_docs/docs/epas/14/installing/windows/managing_an_advanced_server_installation/index.mdx b/product_docs/docs/epas/15/installing/windows/managing_an_advanced_server_installation/index.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/managing_an_advanced_server_installation/index.mdx rename to product_docs/docs/epas/15/installing/windows/managing_an_advanced_server_installation/index.mdx diff --git a/product_docs/docs/epas/14/installing/windows/managing_an_advanced_server_installation/using_pg_ctl_to_control_advanced_server.mdx b/product_docs/docs/epas/15/installing/windows/managing_an_advanced_server_installation/using_pg_ctl_to_control_advanced_server.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/managing_an_advanced_server_installation/using_pg_ctl_to_control_advanced_server.mdx rename to product_docs/docs/epas/15/installing/windows/managing_an_advanced_server_installation/using_pg_ctl_to_control_advanced_server.mdx diff --git a/product_docs/docs/epas/14/installing/windows/managing_an_advanced_server_installation/using_the_windows_services_applet.mdx b/product_docs/docs/epas/15/installing/windows/managing_an_advanced_server_installation/using_the_windows_services_applet.mdx similarity index 100% rename from product_docs/docs/epas/14/installing/windows/managing_an_advanced_server_installation/using_the_windows_services_applet.mdx rename to product_docs/docs/epas/15/installing/windows/managing_an_advanced_server_installation/using_the_windows_services_applet.mdx diff --git a/product_docs/docs/epas/14/language_pack/01_supported_database_server_versions.mdx b/product_docs/docs/epas/15/language_pack/01_supported_database_server_versions.mdx similarity index 100% rename from product_docs/docs/epas/14/language_pack/01_supported_database_server_versions.mdx rename to product_docs/docs/epas/15/language_pack/01_supported_database_server_versions.mdx diff --git a/product_docs/docs/epas/14/language_pack/02_installing_language_pack.mdx b/product_docs/docs/epas/15/language_pack/02_installing_language_pack.mdx similarity index 100% rename from product_docs/docs/epas/14/language_pack/02_installing_language_pack.mdx rename to product_docs/docs/epas/15/language_pack/02_installing_language_pack.mdx diff --git a/product_docs/docs/epas/14/language_pack/03_using_the_procedural_languages.mdx b/product_docs/docs/epas/15/language_pack/03_using_the_procedural_languages.mdx similarity index 100% rename from product_docs/docs/epas/14/language_pack/03_using_the_procedural_languages.mdx rename to product_docs/docs/epas/15/language_pack/03_using_the_procedural_languages.mdx diff --git a/product_docs/docs/epas/14/language_pack/04_uninstalling_language_pack.mdx b/product_docs/docs/epas/15/language_pack/04_uninstalling_language_pack.mdx similarity index 100% rename from product_docs/docs/epas/14/language_pack/04_uninstalling_language_pack.mdx rename to product_docs/docs/epas/15/language_pack/04_uninstalling_language_pack.mdx diff --git a/product_docs/docs/epas/14/language_pack/images/EDB_logo.png b/product_docs/docs/epas/15/language_pack/images/EDB_logo.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/EDB_logo.png rename to product_docs/docs/epas/15/language_pack/images/EDB_logo.png diff --git a/product_docs/docs/epas/14/language_pack/images/complete1.png b/product_docs/docs/epas/15/language_pack/images/complete1.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/complete1.png rename to product_docs/docs/epas/15/language_pack/images/complete1.png diff --git a/product_docs/docs/epas/14/language_pack/images/edb.png b/product_docs/docs/epas/15/language_pack/images/edb.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/edb.png rename to product_docs/docs/epas/15/language_pack/images/edb.png diff --git a/product_docs/docs/epas/14/language_pack/images/edb_logo.svg b/product_docs/docs/epas/15/language_pack/images/edb_logo.svg similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/edb_logo.svg rename to product_docs/docs/epas/15/language_pack/images/edb_logo.svg diff --git a/product_docs/docs/epas/14/language_pack/images/installation_complete.png b/product_docs/docs/epas/15/language_pack/images/installation_complete.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/installation_complete.png rename to product_docs/docs/epas/15/language_pack/images/installation_complete.png diff --git a/product_docs/docs/epas/14/language_pack/images/language1.png b/product_docs/docs/epas/15/language_pack/images/language1.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/language1.png rename to product_docs/docs/epas/15/language_pack/images/language1.png diff --git a/product_docs/docs/epas/14/language_pack/images/language_pack_selected_pacakges.png b/product_docs/docs/epas/15/language_pack/images/language_pack_selected_pacakges.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/language_pack_selected_pacakges.png rename to product_docs/docs/epas/15/language_pack/images/language_pack_selected_pacakges.png diff --git a/product_docs/docs/epas/14/language_pack/images/language_pack_versions_selection.png b/product_docs/docs/epas/15/language_pack/images/language_pack_versions_selection.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/language_pack_versions_selection.png rename to product_docs/docs/epas/15/language_pack/images/language_pack_versions_selection.png diff --git a/product_docs/docs/epas/14/language_pack/images/language_pack_welcome.png b/product_docs/docs/epas/15/language_pack/images/language_pack_welcome.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/language_pack_welcome.png rename to product_docs/docs/epas/15/language_pack/images/language_pack_welcome.png diff --git a/product_docs/docs/epas/14/language_pack/images/lp.2_aug6.png b/product_docs/docs/epas/15/language_pack/images/lp.2_aug6.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/lp.2_aug6.png rename to product_docs/docs/epas/15/language_pack/images/lp.2_aug6.png diff --git a/product_docs/docs/epas/14/language_pack/images/lp3_aug6.png b/product_docs/docs/epas/15/language_pack/images/lp3_aug6.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/lp3_aug6.png rename to product_docs/docs/epas/15/language_pack/images/lp3_aug6.png diff --git a/product_docs/docs/epas/14/language_pack/images/lp4_aug6.png b/product_docs/docs/epas/15/language_pack/images/lp4_aug6.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/lp4_aug6.png rename to product_docs/docs/epas/15/language_pack/images/lp4_aug6.png diff --git a/product_docs/docs/epas/14/language_pack/images/lp_aug6.png b/product_docs/docs/epas/15/language_pack/images/lp_aug6.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/lp_aug6.png rename to product_docs/docs/epas/15/language_pack/images/lp_aug6.png diff --git a/product_docs/docs/epas/14/language_pack/images/sb2_aug6.png b/product_docs/docs/epas/15/language_pack/images/sb2_aug6.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/sb2_aug6.png rename to product_docs/docs/epas/15/language_pack/images/sb2_aug6.png diff --git a/product_docs/docs/epas/14/language_pack/images/sb3_aug6.png b/product_docs/docs/epas/15/language_pack/images/sb3_aug6.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/sb3_aug6.png rename to product_docs/docs/epas/15/language_pack/images/sb3_aug6.png diff --git a/product_docs/docs/epas/14/language_pack/images/sb4_aug6.png b/product_docs/docs/epas/15/language_pack/images/sb4_aug6.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/sb4_aug6.png rename to product_docs/docs/epas/15/language_pack/images/sb4_aug6.png diff --git a/product_docs/docs/epas/14/language_pack/images/sb_aug6.png b/product_docs/docs/epas/15/language_pack/images/sb_aug6.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/sb_aug6.png rename to product_docs/docs/epas/15/language_pack/images/sb_aug6.png diff --git a/product_docs/docs/epas/14/language_pack/images/stackbuilder_installation_complete.png b/product_docs/docs/epas/15/language_pack/images/stackbuilder_installation_complete.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/stackbuilder_installation_complete.png rename to product_docs/docs/epas/15/language_pack/images/stackbuilder_installation_complete.png diff --git a/product_docs/docs/epas/14/language_pack/images/stackbuilder_welcome.png b/product_docs/docs/epas/15/language_pack/images/stackbuilder_welcome.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/stackbuilder_welcome.png rename to product_docs/docs/epas/15/language_pack/images/stackbuilder_welcome.png diff --git a/product_docs/docs/epas/14/language_pack/images/the_installing_dialog.png b/product_docs/docs/epas/15/language_pack/images/the_installing_dialog.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/the_installing_dialog.png rename to product_docs/docs/epas/15/language_pack/images/the_installing_dialog.png diff --git a/product_docs/docs/epas/14/language_pack/images/the_language_pack_setup_complete_dialog.png b/product_docs/docs/epas/15/language_pack/images/the_language_pack_setup_complete_dialog.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/the_language_pack_setup_complete_dialog.png rename to product_docs/docs/epas/15/language_pack/images/the_language_pack_setup_complete_dialog.png diff --git a/product_docs/docs/epas/14/language_pack/images/the_language_pack_welcome_window.png b/product_docs/docs/epas/15/language_pack/images/the_language_pack_welcome_window.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/the_language_pack_welcome_window.png rename to product_docs/docs/epas/15/language_pack/images/the_language_pack_welcome_window.png diff --git a/product_docs/docs/epas/14/language_pack/images/the_ready_to_install_dialog.png b/product_docs/docs/epas/15/language_pack/images/the_ready_to_install_dialog.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/the_ready_to_install_dialog.png rename to product_docs/docs/epas/15/language_pack/images/the_ready_to_install_dialog.png diff --git a/product_docs/docs/epas/14/language_pack/images/the_stackbuilder_plus_window.png b/product_docs/docs/epas/15/language_pack/images/the_stackbuilder_plus_window.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/the_stackbuilder_plus_window.png rename to product_docs/docs/epas/15/language_pack/images/the_stackbuilder_plus_window.png diff --git a/product_docs/docs/epas/14/language_pack/images/uninstall_lp1.png b/product_docs/docs/epas/15/language_pack/images/uninstall_lp1.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/uninstall_lp1.png rename to product_docs/docs/epas/15/language_pack/images/uninstall_lp1.png diff --git a/product_docs/docs/epas/14/language_pack/images/uninstall_lp2.png b/product_docs/docs/epas/15/language_pack/images/uninstall_lp2.png similarity index 100% rename from product_docs/docs/epas/14/language_pack/images/uninstall_lp2.png rename to product_docs/docs/epas/15/language_pack/images/uninstall_lp2.png diff --git a/product_docs/docs/epas/14/language_pack/index.mdx b/product_docs/docs/epas/15/language_pack/index.mdx similarity index 100% rename from product_docs/docs/epas/14/language_pack/index.mdx rename to product_docs/docs/epas/15/language_pack/index.mdx diff --git a/product_docs/docs/epas/14/troubleshooting/index.mdx b/product_docs/docs/epas/15/troubleshooting/index.mdx similarity index 100% rename from product_docs/docs/epas/14/troubleshooting/index.mdx rename to product_docs/docs/epas/15/troubleshooting/index.mdx diff --git a/product_docs/docs/epas/14/troubleshooting/linux_troubleshooting/enabling_core_dump.mdx b/product_docs/docs/epas/15/troubleshooting/linux_troubleshooting/enabling_core_dump.mdx similarity index 100% rename from product_docs/docs/epas/14/troubleshooting/linux_troubleshooting/enabling_core_dump.mdx rename to product_docs/docs/epas/15/troubleshooting/linux_troubleshooting/enabling_core_dump.mdx diff --git a/product_docs/docs/epas/14/troubleshooting/linux_troubleshooting/index.mdx b/product_docs/docs/epas/15/troubleshooting/linux_troubleshooting/index.mdx similarity index 100% rename from product_docs/docs/epas/14/troubleshooting/linux_troubleshooting/index.mdx rename to product_docs/docs/epas/15/troubleshooting/linux_troubleshooting/index.mdx diff --git a/product_docs/docs/epas/14/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux.mdx b/product_docs/docs/epas/15/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux.mdx similarity index 100% rename from product_docs/docs/epas/14/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux.mdx rename to product_docs/docs/epas/15/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux.mdx diff --git a/product_docs/docs/epas/14/troubleshooting/windows_troubleshooting.mdx b/product_docs/docs/epas/15/troubleshooting/windows_troubleshooting.mdx similarity index 100% rename from product_docs/docs/epas/14/troubleshooting/windows_troubleshooting.mdx rename to product_docs/docs/epas/15/troubleshooting/windows_troubleshooting.mdx diff --git a/product_docs/docs/epas/14/uninstalling/images/acknowledging_components_removed.png b/product_docs/docs/epas/15/uninstalling/images/acknowledging_components_removed.png similarity index 100% rename from product_docs/docs/epas/14/uninstalling/images/acknowledging_components_removed.png rename to product_docs/docs/epas/15/uninstalling/images/acknowledging_components_removed.png diff --git a/product_docs/docs/epas/14/uninstalling/images/advanced_server_uninstaller.png b/product_docs/docs/epas/15/uninstalling/images/advanced_server_uninstaller.png similarity index 100% rename from product_docs/docs/epas/14/uninstalling/images/advanced_server_uninstaller.png rename to product_docs/docs/epas/15/uninstalling/images/advanced_server_uninstaller.png diff --git a/product_docs/docs/epas/14/uninstalling/images/uninstallation_complete.png b/product_docs/docs/epas/15/uninstalling/images/uninstallation_complete.png similarity index 100% rename from product_docs/docs/epas/14/uninstalling/images/uninstallation_complete.png rename to product_docs/docs/epas/15/uninstalling/images/uninstallation_complete.png diff --git a/product_docs/docs/epas/14/uninstalling/index.mdx b/product_docs/docs/epas/15/uninstalling/index.mdx similarity index 100% rename from product_docs/docs/epas/14/uninstalling/index.mdx rename to product_docs/docs/epas/15/uninstalling/index.mdx diff --git a/product_docs/docs/epas/14/uninstalling/linux_uninstall.mdx b/product_docs/docs/epas/15/uninstalling/linux_uninstall.mdx similarity index 100% rename from product_docs/docs/epas/14/uninstalling/linux_uninstall.mdx rename to product_docs/docs/epas/15/uninstalling/linux_uninstall.mdx diff --git a/product_docs/docs/epas/14/uninstalling/windows_uninstall.mdx b/product_docs/docs/epas/15/uninstalling/windows_uninstall.mdx similarity index 100% rename from product_docs/docs/epas/14/uninstalling/windows_uninstall.mdx rename to product_docs/docs/epas/15/uninstalling/windows_uninstall.mdx diff --git a/product_docs/docs/epas/14/upgrading/03_limitations.mdx b/product_docs/docs/epas/15/upgrading/03_limitations.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/03_limitations.mdx rename to product_docs/docs/epas/15/upgrading/03_limitations.mdx diff --git a/product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/01_linking_versus_copying.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/01_linking_versus_copying.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/01_linking_versus_copying.mdx rename to product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/01_linking_versus_copying.mdx diff --git a/product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/index.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/index.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/index.mdx rename to product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/index.mdx diff --git a/product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/01_command_line_options_reference.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/01_command_line_options_reference.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/01_command_line_options_reference.mdx rename to product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/01_command_line_options_reference.mdx diff --git a/product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/index.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/index.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/index.mdx rename to product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/index.mdx diff --git a/product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/03_upgrading_to_advanced_server.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/03_upgrading_to_advanced_server.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/03_upgrading_to_advanced_server.mdx rename to product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/03_upgrading_to_advanced_server.mdx diff --git a/product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/04_upgrading_a_pgAgent_installation.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/04_upgrading_a_pgAgent_installation.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/04_upgrading_a_pgAgent_installation.mdx rename to product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/04_upgrading_a_pgAgent_installation.mdx diff --git a/product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/05_pg_upgrade_troubleshooting.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/05_pg_upgrade_troubleshooting.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/05_pg_upgrade_troubleshooting.mdx rename to product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/05_pg_upgrade_troubleshooting.mdx diff --git a/product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/06_reverting_to_the_old_cluster.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/06_reverting_to_the_old_cluster.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/06_reverting_to_the_old_cluster.mdx rename to product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/06_reverting_to_the_old_cluster.mdx diff --git a/product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/index.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/index.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/04_upgrading_an_installation_with_pg_upgrade/index.mdx rename to product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/index.mdx diff --git a/product_docs/docs/epas/14/upgrading/05_performing_a_minor_version_update_of_an_rpm_installation.mdx b/product_docs/docs/epas/15/upgrading/05_performing_a_minor_version_update_of_an_rpm_installation.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/05_performing_a_minor_version_update_of_an_rpm_installation.mdx rename to product_docs/docs/epas/15/upgrading/05_performing_a_minor_version_update_of_an_rpm_installation.mdx diff --git a/product_docs/docs/epas/14/upgrading/06_using_stackbuilder_plus_to_perform_a_minor_version_update.mdx b/product_docs/docs/epas/15/upgrading/06_using_stackbuilder_plus_to_perform_a_minor_version_update.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/06_using_stackbuilder_plus_to_perform_a_minor_version_update.mdx rename to product_docs/docs/epas/15/upgrading/06_using_stackbuilder_plus_to_perform_a_minor_version_update.mdx diff --git a/product_docs/docs/epas/14/upgrading/images/configuring_advanced_server_to_use_trust_authentication.png b/product_docs/docs/epas/15/upgrading/images/configuring_advanced_server_to_use_trust_authentication.png similarity index 100% rename from product_docs/docs/epas/14/upgrading/images/configuring_advanced_server_to_use_trust_authentication.png rename to product_docs/docs/epas/15/upgrading/images/configuring_advanced_server_to_use_trust_authentication.png diff --git a/product_docs/docs/epas/14/upgrading/images/download_complete_confirmation.png b/product_docs/docs/epas/15/upgrading/images/download_complete_confirmation.png similarity index 100% rename from product_docs/docs/epas/14/upgrading/images/download_complete_confirmation.png rename to product_docs/docs/epas/15/upgrading/images/download_complete_confirmation.png diff --git a/product_docs/docs/epas/14/upgrading/images/selected_packages_summary_window.png b/product_docs/docs/epas/15/upgrading/images/selected_packages_summary_window.png similarity index 100% rename from product_docs/docs/epas/14/upgrading/images/selected_packages_summary_window.png rename to product_docs/docs/epas/15/upgrading/images/selected_packages_summary_window.png diff --git a/product_docs/docs/epas/14/upgrading/images/stackBuilder_plus_confirms_the_completed_installation.png b/product_docs/docs/epas/15/upgrading/images/stackBuilder_plus_confirms_the_completed_installation.png similarity index 100% rename from product_docs/docs/epas/14/upgrading/images/stackBuilder_plus_confirms_the_completed_installation.png rename to product_docs/docs/epas/15/upgrading/images/stackBuilder_plus_confirms_the_completed_installation.png diff --git a/product_docs/docs/epas/14/upgrading/images/the_proxy_servers_dialog.png b/product_docs/docs/epas/15/upgrading/images/the_proxy_servers_dialog.png similarity index 100% rename from product_docs/docs/epas/14/upgrading/images/the_proxy_servers_dialog.png rename to product_docs/docs/epas/15/upgrading/images/the_proxy_servers_dialog.png diff --git a/product_docs/docs/epas/14/upgrading/images/the_stackBuilder_plus_module_selection_window.png b/product_docs/docs/epas/15/upgrading/images/the_stackBuilder_plus_module_selection_window.png similarity index 100% rename from product_docs/docs/epas/14/upgrading/images/the_stackBuilder_plus_module_selection_window.png rename to product_docs/docs/epas/15/upgrading/images/the_stackBuilder_plus_module_selection_window.png diff --git a/product_docs/docs/epas/14/upgrading/images/the_stackBuilder_plus_registration_window.png b/product_docs/docs/epas/15/upgrading/images/the_stackBuilder_plus_registration_window.png similarity index 100% rename from product_docs/docs/epas/14/upgrading/images/the_stackBuilder_plus_registration_window.png rename to product_docs/docs/epas/15/upgrading/images/the_stackBuilder_plus_registration_window.png diff --git a/product_docs/docs/epas/14/upgrading/images/the_stackBuilder_plus_welcome.png b/product_docs/docs/epas/15/upgrading/images/the_stackBuilder_plus_welcome.png similarity index 100% rename from product_docs/docs/epas/14/upgrading/images/the_stackBuilder_plus_welcome.png rename to product_docs/docs/epas/15/upgrading/images/the_stackBuilder_plus_welcome.png diff --git a/product_docs/docs/epas/14/upgrading/index.mdx b/product_docs/docs/epas/15/upgrading/index.mdx similarity index 100% rename from product_docs/docs/epas/14/upgrading/index.mdx rename to product_docs/docs/epas/15/upgrading/index.mdx From f9ed7ae70d02ae30328724532e9501004c5a24cb Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Mon, 31 Jan 2022 16:17:32 +0530 Subject: [PATCH 02/77] Added supported oracle version in create public database link topic as per DB-1636 --- .../epas/15/epas_compat_sql/21_create_public_database_link.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx b/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx index 19cc89709ed..b479443c998 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx @@ -38,7 +38,7 @@ You must be connected to the local database when you issue a SQL command contain For information about high availability, load balancing, and replication for Postgres database servers, see the [PostgreSQL core documentation](https://www.postgresql.org/docs/current/static/high-availability.html). !!! Note - - For EDB Postgres Advanced Server 12, the `CREATE DATABASE LINK` command is tested against and certified for use with Oracle version 10g Release 2 (10.2), Oracle version 11g Release 2 (11.2), and Oracle version 12c Release 1 (12.1). + - For EDB Postgres Advanced Server 12, the `CREATE DATABASE LINK` command is tested against and certified for use with Oracle version 10g Release 2 (10.2), Oracle version 11g Release 2 (11.2), Oracle version 12c Release 1 (12.1), and Oracle version 18c Release 1 (18.2). - You can set the `edb_dblink_oci.rescans` GUC to `SCROLL` or `SERIALIZABLE` at the server level in the `postgresql.conf` file. You can also set it at the session level using the `SET` command. However, the setting isn't applied to existing dblink connections due to dblink connection caching. - When executing `SELECT` on LOB data of more than 4000 characters, we recommend using `edb_dblink_oci.rescans=serializable` to free up the temporary PGA memory and avoid exceeding `PGA_AGGREGATE_LIMIT`. From 11b874df70a8f497b03dec13220fe8dc728cfdc4 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Thu, 3 Feb 2022 15:35:45 +0530 Subject: [PATCH 03/77] Update 21_create_public_database_link.mdx --- .../epas/15/epas_compat_sql/21_create_public_database_link.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx b/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx index b479443c998..898c95f2a0f 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx @@ -38,7 +38,7 @@ You must be connected to the local database when you issue a SQL command contain For information about high availability, load balancing, and replication for Postgres database servers, see the [PostgreSQL core documentation](https://www.postgresql.org/docs/current/static/high-availability.html). !!! Note - - For EDB Postgres Advanced Server 12, the `CREATE DATABASE LINK` command is tested against and certified for use with Oracle version 10g Release 2 (10.2), Oracle version 11g Release 2 (11.2), Oracle version 12c Release 1 (12.1), and Oracle version 18c Release 1 (18.2). + - For EDB Postgres Advanced Server 15, the `CREATE DATABASE LINK` command is tested against and certified for use with Oracle version 10g Release 2 (10.2), Oracle version 11g Release 2 (11.2), Oracle version 12c Release 1 (12.1), and Oracle version 18c Release 1 (18.2). - You can set the `edb_dblink_oci.rescans` GUC to `SCROLL` or `SERIALIZABLE` at the server level in the `postgresql.conf` file. You can also set it at the session level using the `SET` command. However, the setting isn't applied to existing dblink connections due to dblink connection caching. - When executing `SELECT` on LOB data of more than 4000 characters, we recommend using `edb_dblink_oci.rescans=serializable` to free up the temporary PGA memory and avoid exceeding `PGA_AGGREGATE_LIMIT`. From 01311e1c20cf53346f61db0eb48aecb9d1d11b1a Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Thu, 3 Feb 2022 16:27:44 +0530 Subject: [PATCH 04/77] Added the meta commands to view definitions as per DB-1527 Added the meta commands to view definition of package, package body, function and procedure as per DB-1527 --- .../02_packages/01a_display_packages.mdx | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/01a_display_packages.mdx diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/01a_display_packages.mdx b/product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/01a_display_packages.mdx new file mode 100644 index 00000000000..5fb67802906 --- /dev/null +++ b/product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/01a_display_packages.mdx @@ -0,0 +1,106 @@ +--- +title: "View Package and Package Body Definition" +--- + +From version 15 onwards, you can view the package and package body definition using the psql meta-commands `\sps` and `\spb`. + +For example, create the following package and package body: + +``` text +edb=# CREATE OR REPLACE PACKAGE test_pkg IS +edb$# emp_name character varying(10); +edb$# PROCEDURE get_name(IN p_empno numeric); +edb$# FUNCTION display_counter() RETURN integer; +edb$# END; +CREATE PACKAGE +edb=# +edb=# CREATE OR REPLACE PACKAGE BODY test_pkg IS +edb$# v_counter integer; +edb$# +edb$# PROCEDURE get_name(IN p_empno numeric) IS +edb$# BEGIN +edb$# SELECT ename INTO emp_name FROM emp WHERE empno = p_empno; +edb$# v_counter := v_counter + 1; +edb$# END; +edb$# +edb$# FUNCTION display_counter() RETURN integer IS +edb$# BEGIN +edb$# RETURN v_counter; +edb$# END; +edb$# BEGIN +edb$# v_counter := 0; +edb$# DBMS_OUTPUT.PUT_LINE('Initialized counter'); +edb$# END; +CREATE PACKAGE BODY +edb=# +``` + +Use `\sps ` and `\spb ` commands to view the definition of package and package body: + +``` text +edb=# \sps test_pkg +CREATE OR REPLACE PACKAGE test_pkg IS +emp_name character varying(10); +PROCEDURE get_name(IN p_empno numeric); +FUNCTION display_counter() RETURN integer; +END +edb=# +edb=# \spb test_pkg +CREATE OR REPLACE PACKAGE BODY test_pkg IS +v_counter integer; + +PROCEDURE get_name(IN p_empno numeric) IS +BEGIN +SELECT ename INTO emp_name FROM emp WHERE empno = p_empno; +v_counter := v_counter + 1; +END; + +FUNCTION display_counter() RETURN integer IS +BEGIN +RETURN v_counter; +END; +BEGIN +v_counter := 0; +DBMS_OUTPUT.PUT_LINE('Initialized counter'); +END +edb=# +``` + +You can also view the definition of individual functions and procedures using `\sf` command. + +For example, create the following function and procedure: + +``` text +edb=# CREATE OR REPLACE FUNCTION public.func1() +edb-# RETURNS integer +edb-# LANGUAGE edbspl +edb-# SECURITY DEFINER +edb-# AS $function$ begin return 10; end$function$; +CREATE FUNCTION +edb=# +edb=# CREATE OR REPLACE PROCEDURE public.proc1() +edb-# SECURITY DEFINER +edb-# AS $procedure$ begin null; end$procedure$ +edb-# LANGUAGE edbspl; +CREATE PROCEDURE +edb=# +``` + +Use `\sf ` command to view the definition: + +``` text +edb=# \sf func1 +CREATE OR REPLACE FUNCTION public.func1() + RETURNS integer + LANGUAGE edbspl + SECURITY DEFINER +AS $function$ begin return 10; end$function$ +edb=# +edb=# \sf proc1 +CREATE OR REPLACE PROCEDURE public.proc1() + SECURITY DEFINER +AS $procedure$ begin null; end$procedure$ + LANGUAGE edbspl +edb=# +``` + From af772d1085402c57c2f89ddd640b588cc09cd930 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Thu, 3 Feb 2022 17:29:19 +0530 Subject: [PATCH 05/77] Moved the display packages section to version 15 Moved the display packages section to version 15 --- .../epas_compat_bip_guide/02_packages/01a_display_packages.mdx | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename product_docs/docs/epas/{14 => 15}/epas_compat_bip_guide/02_packages/01a_display_packages.mdx (100%) diff --git a/product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/01a_display_packages.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx similarity index 100% rename from product_docs/docs/epas/14/epas_compat_bip_guide/02_packages/01a_display_packages.mdx rename to product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx From 8de6abd6d0a5e2e71b1e079fef84072a7181031e Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 1 Mar 2022 13:33:58 +0530 Subject: [PATCH 06/77] Changes done for DB-1527 as per the feedback from Prabhat Changes done for DB-1527 as per the feedback from Prabhat --- .../02_packages/01a_display_packages.mdx | 50 +++++++++++++++---- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx index 5fb67802906..8c2ab1000c6 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx @@ -2,19 +2,28 @@ title: "View Package and Package Body Definition" --- -From version 15 onwards, you can view the package and package body definition using the psql meta-commands `\sps` and `\spb`. +From version 15 onwards, you can view the package specification and package body definition using the psql meta-commands `\sps` and `\spb` respectively. -For example, create the following package and package body: +**Synopsis** ``` text -edb=# CREATE OR REPLACE PACKAGE test_pkg IS +\sps[+] []. +\spb[+] []. +``` + +**Examples** + +Create a package and a package body `test_pkg` in the `public` schema: + +``` text +edb=# CREATE OR REPLACE PACKAGE public.test_pkg IS edb$# emp_name character varying(10); edb$# PROCEDURE get_name(IN p_empno numeric); edb$# FUNCTION display_counter() RETURN integer; edb$# END; CREATE PACKAGE edb=# -edb=# CREATE OR REPLACE PACKAGE BODY test_pkg IS +edb=# CREATE OR REPLACE PACKAGE BODY public.test_pkg IS edb$# v_counter integer; edb$# edb$# PROCEDURE get_name(IN p_empno numeric) IS @@ -35,18 +44,39 @@ CREATE PACKAGE BODY edb=# ``` -Use `\sps ` and `\spb ` commands to view the definition of package and package body: +Use `\sps` and `\spb` commands to view the definition of package and package body: ``` text edb=# \sps test_pkg -CREATE OR REPLACE PACKAGE test_pkg IS +CREATE OR REPLACE PACKAGE public.test_pkg IS emp_name character varying(10); PROCEDURE get_name(IN p_empno numeric); FUNCTION display_counter() RETURN integer; END -edb=# +edb=# +edb=# \sps+ test_pkg +1 CREATE OR REPLACE PACKAGE public.test_pkg IS +2 emp_name character varying(10); +3 PROCEDURE get_name(INOUT p_empno numeric); +4 FUNCTION display_counter(OUT p1 numeric, OUT p2 numeric) RETURN integer; +5 END + +edb=# \sps public.test_pkg +CREATE OR REPLACE PACKAGE public.test_pkg IS +emp_name character varying(10); +PROCEDURE get_name(INOUT p_empno numeric); +FUNCTION display_counter(OUT p1 numeric, OUT p2 numeric) RETURN integer; +END + +edb=# \sps+ public.test_pkg +1 CREATE OR REPLACE PACKAGE public.test_pkg IS +2 emp_name character varying(10); +3 PROCEDURE get_name(INOUT p_empno numeric); +4 FUNCTION display_counter(OUT p1 numeric, OUT p2 numeric) RETURN integer; +5 END + edb=# \spb test_pkg -CREATE OR REPLACE PACKAGE BODY test_pkg IS +CREATE OR REPLACE PACKAGE BODY public.test_pkg IS v_counter integer; PROCEDURE get_name(IN p_empno numeric) IS @@ -68,7 +98,9 @@ edb=# You can also view the definition of individual functions and procedures using `\sf` command. -For example, create the following function and procedure: +**Examples** + +Create the following function and procedure: ``` text edb=# CREATE OR REPLACE FUNCTION public.func1() From 9893a08f36198d50a4d7b1b4563f1f227ebaefb6 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Wed, 18 May 2022 15:55:44 +0530 Subject: [PATCH 07/77] Added initial draft as per DF-1745 --- .../07_data_type_formatting_functions.mdx | 25 +++++++++++-------- .../08_date_time_functions_and_operators.mdx | 4 +-- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx index 3ae573b20c0..bf0041138f5 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx @@ -7,21 +7,26 @@ legacyRedirectsGenerated: - "/edb-docs/d/edb-postgres-advanced-server/user-guides/user-guide/9.5/EDB_Postgres_Enterprise_Guide.1.043.html" --- - The EDB Postgres Advanced Server formatting functions provide a powerful set of tools for converting various data types (date/time, integer, floating point, numeric) to formatted strings and for converting from formatted strings to specific data types. These functions all follow a common calling convention: the first argument is the value to format and the second argument is a string template that defines the output or input format. | Function | Return type | Description | Example | Result | | ----------------------------------- | ------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | -| `TO_CHAR(DATE [, format ])` | `VARCHAR2` | Convert a date/time to a string with output `format`. If omitted default format is DD-MON-YY. | `TO_CHAR(SYSDATE, 'MM/DD/YYYY HH12:MI:SS AM')` | `07/25/2007 09:43:02 AM` | -| `TO_CHAR(TIMESTAMP [, format ])` | `VARCHAR2` | Convert a timestamp to a string with output `format`. If omitted default format is DD-MON-YY. | `TO_CHAR (CURRENT_TIMESTAMP, 'MM/DD/YYYY HH12:MI:SS AM')` | `08/13/2015 08:55:22 PM` | -| `TO_CHAR(INTEGER [, format ])` | `VARCHAR2` | Convert an integer to a string with output `format`. | `TO_CHAR(2412, '999,999S')` | `2,412+` | -| `TO_CHAR(NUMBER [, format ])` | `VARCHAR2` | Convert a decimal number to a string with output `format`. | `TO_CHAR(10125.35, '999,999.99')` | `10,125.35` | -| `TO_CHAR(DOUBLE PRECISION, format)` | `VARCHAR2` | Convert a floating-point number to a string with output `format`. | `TO_CHAR (CAST(123.5282 AS REAL), '999.99')` | `123.53` | -| `TO_DATE(string [, format ])` | `TIMESTAMP` | Convert a date or timestamp formatted string to a `TIMESTAMP` data type. | `TO_DATE('2007-07-04 13:39:10', 'YYYY-MM-DD HH24:MI:SS')`

`TO_DATE('2007-07-04','YYYY-MM-DD')` | `04-JUL-07 13:39:10`

`04-JUL-07 00:00:00` | -| `TO_NUMBER(string [, format ])` | `NUMBER` | Convert a number formatted string to a `NUMBER` data type. | `TO_NUMBER('2,412-', '999,999S')` | `-2412` | -| `TO_TIMESTAMP(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a `TIMESTAMPTZ` data type. | `TO_TIMESTAMP('05 Dec 2000 08:30:25 pm', 'DD Mon YYYY hh12:mi:ss pm')` | `05-DEC-00 20:30:25 +05:30` | -| `TO_TIMESTAMP_TZ(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a `TIMESTAMPTZ` data type. | `TO_TIMESTAMP_TZ ('2003/12/13 10:13:18 -8:00', 'YYYY/MM/DD HH:MI:SS TZH:TZM')` | `13-DEC-03 23:43:18 +05:30` | +| `TO_BLOB(raw)` | `BLOB` | Convert a `RAW` value to `BLOB` value. | `TO_BLOB(raw_column)` | `00AADD343CDBBD` | +| `TO_CLOB(string)` | `CLOB` | Convert a `CHAR`, `VARCHAR`, `VARCHAR2`, `NCHAR`, `NVARCHAR2`, or `CLOB` values to `CLOB` values. | `TO_CLOB('aaaa')` | `aaaa` | +| `TO_CHAR(DATE [, format ])` | `VARCHAR2` | Convert a date/time to a string with output, `format`. If omitted default format is DD-MON-YY. | `TO_CHAR(SYSDATE, 'MM/DD/YYYY HH12:MI:SS AM')` | `07/25/2007 09:43:02 AM` | +| `TO_CHAR(TIMESTAMP [, format ])` | `VARCHAR2` | Convert a timestamp to a string with output, `format`. If omitted default format is DD-MON-YY. | `TO_CHAR (CURRENT_TIMESTAMP, 'MM/DD/YYYY HH12:MI:SS AM')` | `08/13/2015 08:55:22 PM` | +| `TO_CHAR(INTEGER [, format ])` | `VARCHAR2` | Convert an integer to a string with output, `format` | `TO_CHAR(2412, '999,999S')` | `2,412+` | +| `TO_CHAR(NUMBER [, format ])` | `VARCHAR2` | Convert a decimal number to a string with output, `format` | `TO_CHAR(10125.35, '999,999.99')` | `10,125.35` | +| `TO_CHAR(DOUBLE PRECISION, format)` | `VARCHAR2` | Convert a floating-point number to a string with output, `format` | `TO_CHAR (CAST(123.5282 AS REAL), '999.99')` | `123.53` | +| `TO_DATE(string [, format ])` | `TIMESTAMP` | Convert a date or timestamp formatted string to a `TIMESTAMP` data type | `TO_DATE('2007-07-04 13:39:10', 'YYYY-MM-DD HH24:MI:SS')`

`TO_DATE('2007-07-04','YYYY-MM-DD')` | `04-JUL-07 13:39:10`

`04-JUL-07 00:00:00` | +| `TO_DSINTERVAL(string)` | `INTERVAL DAY TO SECOND` | Convert a character string of `CHAR`, `VARCHAR2`, `NCHAR`, or `NVARCHAR2` datatype to an INTERVAL DAY TO SECOND type. | `TO_DSINTERVAL('80 13:30:00')` | `+000000080 13:30:00.000000000` | +| `TO_NCHAR(string)` | `NVARCHAR2` | Convert a `character string`, `CHAR`, `VARCHAR2`, `CLOB`, or `NCLOB` value to the national character set. | `TO_NCHAR()` | | +| `TO_NCHAR(number [, format])` | `NVARCHAR2` | Convert a number formatted string to a national character data type. | `TO_NCHAR(7654321, 'C9G999G999D99')` | `7,654,321.00` | +| `TO_NCHAR(DATE [, format ])` | `NVARCHAR2` | Convert a date/time to a formatted string of national character data type. | `TO_NCHAR(timestamp '2022-04-20 17:31:12.66', 'Day: MONTH DD, YYYY')` | `Wednesday: APRIL 20, 2022` | +| `TO_NUMBER(string [, format ])` | `NUMBER` | Convert a number formatted string to a `NUMBER` data type | `TO_NUMBER('2,412-', '999,999S')` | `-2412` | +| `TO_TIMESTAMP(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a `TIMESTAMPTZ` data type | `TO_TIMESTAMP('05 Dec 2000 08:30:25 pm', 'DD Mon YYYY hh12:mi:ss pm')` | `05-DEC-00 20:30:25 +05:30` | +| `TO_TIMESTAMP_TZ(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a `TIMESTAMPTZ` data type | `TO_TIMESTAMP_TZ ('2003/12/13 10:13:18 -8:00', 'YYYY/MM/DD HH:MI:SS TZH:TZM')` | `13-DEC-03 23:43:18 +05:30` | ## TO_CHAR, TO_DATE, TO_TIMESTAMP, and TO_TIMESTAMP_TZ diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx index 075c065239e..b61b8122269 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx @@ -7,9 +7,7 @@ legacyRedirectsGenerated: - "/edb-docs/d/edb-postgres-advanced-server/user-guides/user-guide/9.5/EDB_Postgres_Enterprise_Guide.1.044.html" --- - - -The table summarizes the available functions for date/time value processing. It shows the behaviors of the basic arithmetic operators `(+, -)`. For formatting functions, refer to [IMMUTABLE TO_CHAR(TIMESTAMP, format) function](07_data_type_formatting_functions/#immutable_to_char_function). For background information on date/time data types, see [Date/time types](../02_data_types/04_date_time_types/#date_time_types). +The date/time functions table shows the available functions for date/time value processing, with details appearing in the following subsections. The following table illustrates the behaviors of the basic arithmetic operators `(+, -)`. For formatting functions, refer to [IMMUTABLE TO_CHAR(TIMESTAMP, format) Function](07_data_type_formatting_functions/#immutable_to_char_function). You should be familiar with the background information on date/time data types, see [Date/Time Types](../02_data_types/04_date_time_types/#date_time_types). | Operator | Example | Result | | ----------- | ------------------------------------------------------------------- | -------------------- | From 7e92f6f7ca1b1df9f05a7bf092dde8fe3cd79509 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Mon, 23 May 2022 12:45:14 +0530 Subject: [PATCH 08/77] Added the example for to_nchar --- .../07_data_type_formatting_functions.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx index bf0041138f5..0c0ea594855 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx @@ -21,7 +21,7 @@ The EDB Postgres Advanced Server formatting functions provide a powerful set of | `TO_CHAR(DOUBLE PRECISION, format)` | `VARCHAR2` | Convert a floating-point number to a string with output, `format` | `TO_CHAR (CAST(123.5282 AS REAL), '999.99')` | `123.53` | | `TO_DATE(string [, format ])` | `TIMESTAMP` | Convert a date or timestamp formatted string to a `TIMESTAMP` data type | `TO_DATE('2007-07-04 13:39:10', 'YYYY-MM-DD HH24:MI:SS')`

`TO_DATE('2007-07-04','YYYY-MM-DD')` | `04-JUL-07 13:39:10`

`04-JUL-07 00:00:00` | | `TO_DSINTERVAL(string)` | `INTERVAL DAY TO SECOND` | Convert a character string of `CHAR`, `VARCHAR2`, `NCHAR`, or `NVARCHAR2` datatype to an INTERVAL DAY TO SECOND type. | `TO_DSINTERVAL('80 13:30:00')` | `+000000080 13:30:00.000000000` | -| `TO_NCHAR(string)` | `NVARCHAR2` | Convert a `character string`, `CHAR`, `VARCHAR2`, `CLOB`, or `NCLOB` value to the national character set. | `TO_NCHAR()` | | +| `TO_NCHAR(string)` | `NVARCHAR2` | Convert a `character string`, `CHAR`, `VARCHAR2`, `CLOB`, or `NCLOB` value to the national character set. | `TO_NCHAR('test')` | `test` | | `TO_NCHAR(number [, format])` | `NVARCHAR2` | Convert a number formatted string to a national character data type. | `TO_NCHAR(7654321, 'C9G999G999D99')` | `7,654,321.00` | | `TO_NCHAR(DATE [, format ])` | `NVARCHAR2` | Convert a date/time to a formatted string of national character data type. | `TO_NCHAR(timestamp '2022-04-20 17:31:12.66', 'Day: MONTH DD, YYYY')` | `Wednesday: APRIL 20, 2022` | | `TO_NUMBER(string [, format ])` | `NUMBER` | Convert a number formatted string to a `NUMBER` data type | `TO_NUMBER('2,412-', '999,999S')` | `-2412` | From 86cd7b4306ee75a9caf3dcf1a753b725f0a5e257 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Wed, 1 Jun 2022 13:14:59 +0530 Subject: [PATCH 09/77] changes done as per comments by Tushar on DB-1745 --- .../07_data_type_formatting_functions.mdx | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx index 0c0ea594855..f751f1e437d 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx @@ -12,7 +12,7 @@ The EDB Postgres Advanced Server formatting functions provide a powerful set of | Function | Return type | Description | Example | Result | | ----------------------------------- | ------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | -| `TO_BLOB(raw)` | `BLOB` | Convert a `RAW` value to `BLOB` value. | `TO_BLOB(raw_column)` | `00AADD343CDBBD` | +| `TO_BLOB(raw)` | `BLOB` | Convert a `RAW` value to `BLOB` value. | `TO_BLOB('abc')` | `\x616263` | | `TO_CLOB(string)` | `CLOB` | Convert a `CHAR`, `VARCHAR`, `VARCHAR2`, `NCHAR`, `NVARCHAR2`, or `CLOB` values to `CLOB` values. | `TO_CLOB('aaaa')` | `aaaa` | | `TO_CHAR(DATE [, format ])` | `VARCHAR2` | Convert a date/time to a string with output, `format`. If omitted default format is DD-MON-YY. | `TO_CHAR(SYSDATE, 'MM/DD/YYYY HH12:MI:SS AM')` | `07/25/2007 09:43:02 AM` | | `TO_CHAR(TIMESTAMP [, format ])` | `VARCHAR2` | Convert a timestamp to a string with output, `format`. If omitted default format is DD-MON-YY. | `TO_CHAR (CURRENT_TIMESTAMP, 'MM/DD/YYYY HH12:MI:SS AM')` | `08/13/2015 08:55:22 PM` | @@ -20,7 +20,7 @@ The EDB Postgres Advanced Server formatting functions provide a powerful set of | `TO_CHAR(NUMBER [, format ])` | `VARCHAR2` | Convert a decimal number to a string with output, `format` | `TO_CHAR(10125.35, '999,999.99')` | `10,125.35` | | `TO_CHAR(DOUBLE PRECISION, format)` | `VARCHAR2` | Convert a floating-point number to a string with output, `format` | `TO_CHAR (CAST(123.5282 AS REAL), '999.99')` | `123.53` | | `TO_DATE(string [, format ])` | `TIMESTAMP` | Convert a date or timestamp formatted string to a `TIMESTAMP` data type | `TO_DATE('2007-07-04 13:39:10', 'YYYY-MM-DD HH24:MI:SS')`

`TO_DATE('2007-07-04','YYYY-MM-DD')` | `04-JUL-07 13:39:10`

`04-JUL-07 00:00:00` | -| `TO_DSINTERVAL(string)` | `INTERVAL DAY TO SECOND` | Convert a character string of `CHAR`, `VARCHAR2`, `NCHAR`, or `NVARCHAR2` datatype to an INTERVAL DAY TO SECOND type. | `TO_DSINTERVAL('80 13:30:00')` | `+000000080 13:30:00.000000000` | +| `TO_DSINTERVAL(string)` | `INTERVAL DAY TO SECOND` | Convert a character string of `CHAR`, `VARCHAR2`, `NCHAR`, or `NVARCHAR2` datatype to an INTERVAL DAY TO SECOND type. | `TO_DSINTERVAL('80 13:30:00')` | `80 days 13:30:00` | | `TO_NCHAR(string)` | `NVARCHAR2` | Convert a `character string`, `CHAR`, `VARCHAR2`, `CLOB`, or `NCLOB` value to the national character set. | `TO_NCHAR('test')` | `test` | | `TO_NCHAR(number [, format])` | `NVARCHAR2` | Convert a number formatted string to a national character data type. | `TO_NCHAR(7654321, 'C9G999G999D99')` | `7,654,321.00` | | `TO_NCHAR(DATE [, format ])` | `NVARCHAR2` | Convert a date/time to a formatted string of national character data type. | `TO_NCHAR(timestamp '2022-04-20 17:31:12.66', 'Day: MONTH DD, YYYY')` | `Wednesday: APRIL 20, 2022` | @@ -28,6 +28,26 @@ The EDB Postgres Advanced Server formatting functions provide a powerful set of | `TO_TIMESTAMP(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a `TIMESTAMPTZ` data type | `TO_TIMESTAMP('05 Dec 2000 08:30:25 pm', 'DD Mon YYYY hh12:mi:ss pm')` | `05-DEC-00 20:30:25 +05:30` | | `TO_TIMESTAMP_TZ(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a `TIMESTAMPTZ` data type | `TO_TIMESTAMP_TZ ('2003/12/13 10:13:18 -8:00', 'YYYY/MM/DD HH:MI:SS TZH:TZM')` | `13-DEC-03 23:43:18 +05:30` | +!!! Note + The output format of `TO_DSINTERVAL(string)` can be altered using `intervalstyle` GUC setting. For example: + + ```text + edb=# SET intervalstyle = 'sql_standard'; + SET + + edb=# select to_dsinterval('80 13:30:00') from dual; + to_dsinterval + --------------- + 80 13:30:00 + + edb=# SET intervalstyle = 'postgres_verbose'; + SET + edb=# select to_dsinterval('80 13:30:00') from dual; + to_dsinterval + ---------------------------- + @ 80 days 13 hours 30 mins + ``` + ## TO_CHAR, TO_DATE, TO_TIMESTAMP, and TO_TIMESTAMP_TZ In an output template string (for `TO_CHAR`), certain patterns are recognized and replaced with appropriately formatted data from the value to formatt. Any text that isn't a template pattern is copied verbatim. Similarly, in an input template string (for anything but `TO_CHAR`), template patterns identify the parts of the input data string to look at and the values to find there. From 57c3b1f39cbdf25846a253c5905a9d5bc93be04c Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Fri, 10 Jun 2022 11:44:22 +0530 Subject: [PATCH 10/77] Added content as per DB-1638 --- .../02_access_method_hints.mdx | 87 ++++++++++++++++--- 1 file changed, 73 insertions(+), 14 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx index 15c1312416c..6e8c166ac15 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx @@ -19,15 +19,19 @@ The following hints influence how the optimizer accesses relations to create the In addition, you can use the `ALL_ROWS`, `FIRST_ROWS`, and `FIRST_ROWS(n)` hints. +From version 15 onwards, `INDEX` and `NO_INDEX` hints for the partitioned table inherit the corresponding child indexes and apply in later processing. + ## Examples The sample application doesn't have enough data to show the effects of optimizer hints. Thus the remainder of these examples use a banking database created by the `pgbench` application located in the EDB Postgres Advanced Server `bin` subdirectory. -This example creates a database named `bank` populated by the tables `pgbench_accounts`, `pgbench_branches`, `pgbench_tellers`, and `pgbench_history`. The `–s 20` option specifies a scaling factor of 20, which creates 20 branches, each with 100,000 accounts. This results in a total of 2,000,000 rows in the `pgbench_accounts` table and 20 rows in the `pgbench_branches` table. Ten tellers are assigned to each branch, resulting in a total of 200 rows in the `pgbench_tellers` table. +## Create a sample database and tables + +The following steps create a database named, `bank`, populated by the tables, `pgbench_accounts, pgbench_branches, pgbench_tellers`, and `pgbench_history`. The `–s 20` option specifies a scaling factor of twenty, which results in the creation of twenty branches, each with 100,000 accounts, resulting in a total of 2,000,000 rows in the `pgbench_accounts` table and twenty rows in the `pgbench_branches` table. Ten tellers are assigned to each branch resulting in a total of 200 rows in the `pgbench_tellers` table. The following initializes the `pgbench` application in the `bank` database. -```text +```sql createdb -U enterprisedb bank CREATE DATABASE @@ -65,7 +69,7 @@ done. A total of 500,00 transactions are then processed. These transactions populate the `pgbench_history` table with 500,000 rows. -```text +```sql pgbench -U enterprisedb -t 500000 bank starting vacuum...end. @@ -83,7 +87,7 @@ tps = 1464.350357 (excluding connections establishing) The following are the table definitions: -```text +```sql \d pgbench_accounts Table "public.pgbench_accounts" @@ -134,7 +138,7 @@ Indexes: The `EXPLAIN` command shows the plan selected by the query planner. In this example, `aid` is the primary key column, so an indexed search is used on index `pgbench_accounts_pkey`: -```text +```sql EXPLAIN SELECT * FROM pgbench_accounts WHERE aid = 100; QUERY PLAN @@ -146,9 +150,11 @@ rows=1 width=97) (2 rows) ``` -The `FULL` hint is used to force a full sequential scan instead of using the index: +## FULL hint example -```text +The `FULL` hint is used to force a full sequential scan instead of using the index as shown below: + +```sql EXPLAIN SELECT /*+ FULL(pgbench_accounts) */ * FROM pgbench_accounts WHERE aid = 100; @@ -159,9 +165,11 @@ Seq Scan on pgbench_accounts (cost=0.00..58781.69 rows=1 width=97) (2 rows) ``` -The `NO_INDEX` hint forces a parallel sequential scan instead of using the index: +## NO_INDEX hint example + +The `NO_INDEX` hint forces a parallel sequential scan instead of use of the index as shown below: -```text +```sql EXPLAIN SELECT /*+ NO_INDEX(pgbench_accounts pgbench_accounts_pkey) */ * FROM pgbench_accounts WHERE aid = 100; @@ -176,15 +184,17 @@ FROM pgbench_accounts WHERE aid = 100; (4 rows) ``` -In addition to using the `EXPLAIN` command, you can get more detailed information about whether a hint was used by the planner by setting the `trace_hints` configuration parameter: +## Tracing optimizer hints example -```text +In addition to using the `EXPLAIN` command as shown in the prior examples, more detailed information regarding whether or not a hint was used by the planner can be obtained by setting the `trace_hints` configuration parameter as follows: + +```sql SET trace_hints TO on; ``` The `SELECT` command with the `NO_INDEX` hint shows the additional information produced when you set the `trace_hints` configuration parameters: -```text +```sql EXPLAIN SELECT /*+ NO_INDEX(pgbench_accounts pgbench_accounts_pkey) */ * FROM pgbench_accounts WHERE aid = 100; @@ -201,9 +211,11 @@ width=97) (4 rows) ``` -If a hint is ignored, the `INFO: [HINTS]` line doesn't appear. This might be indicate a syntax error or some other misspelling in the hint as shown in this example. The index name is misspelled. +## Hint ignored example + +Note that if a hint is ignored, the `INFO: [HINTS]` line doesn't appear. This might be an indication that there was a syntax error or some other misspelling in the hint as shown in the following example where the index name is misspelled. -```text +```sql EXPLAIN SELECT /*+ NO_INDEX(pgbench_accounts pgbench_accounts_xxx) */ * FROM pgbench_accounts WHERE aid = 100; @@ -215,3 +227,50 @@ rows=1 width=97) Index Cond: (aid = 100) (2 rows) ``` + +## INDEX hint example for the partitioned table + + +```sql +CREATE TABLE t_1384(col1 int, col2 int, col3 int) +PARTITION BY RANGE(col1) +(PARTITION p1 VALUES LESS THAN(500), +PARTITION p2 VALUES LESS THAN(1000)); + +ALTER TABLE t_1384 ADD PRIMARY KEY(col1); + +CREATE INDEX idx1 ON t_1384(col2); + +CREATE INDEX idx2 ON t_1384(col1, col2); + +SET enable_hints = true; + +SET trace_hints TO on; + +-- Use primary index +EXPLAIN (COSTS OFF) SELECT /*+ INDEX(s t_1384_pkey) */ * FROM t_1384 s +WHERE col2 = 10; + +INFO: [HINTS] SeqScan of [s] rejected due to INDEX hint. +INFO: [HINTS] Parallel SeqScan of [s] rejected due to INDEX hint. +INFO: [HINTS] Index Scan of [s].[t_1384_p1_col1_col2_idx] rejected due to INDEX hint. +INFO: [HINTS] Index Scan of [s].[t_1384_p1_col2_idx] rejected due to INDEX hint. +INFO: [HINTS] Index Scan of [s].[t_1384_p1_pkey] accepted. +INFO: [HINTS] SeqScan of [s] rejected due to INDEX hint. +INFO: [HINTS] Parallel SeqScan of [s] rejected due to INDEX hint. +INFO: [HINTS] Index Scan of [s].[t_1384_p2_col1_col2_idx] rejected due to INDEX hint. +INFO: [HINTS] Index Scan of [s].[t_1384_p2_col2_idx] rejected due to INDEX hint. +INFO: [HINTS] Index Scan of [s].[t_1384_p2_pkey] accepted. + QUERY PLAN +----------------------------------------------------- +Append + -> Bitmap Heap Scan on t_1384_p1 s_1 + Recheck Cond: (col2 = 10) + -> Bitmap Index Scan on t_1384_p1_col2_idx + Index Cond: (col2 = 10) + -> Bitmap Heap Scan on t_1384_p2 s_2 + Recheck Cond: (col2 = 10) + -> Bitmap Index Scan on t_1384_p2_col2_idx + Index Cond: (col2 = 10) +(9 rows) +``` \ No newline at end of file From ee509efd9df8e3c2896c007de7dbf4ad9dfd2759 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Mon, 13 Jun 2022 15:08:57 +0530 Subject: [PATCH 11/77] Added SET ROW feature doc updates as per DB-1694 --- .../epas/15/epas_compat_sql/76_update.mdx | 44 ++++++++++++++++--- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx b/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx index e05ce7fc99b..d8751620e64 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx @@ -2,27 +2,41 @@ title: "UPDATE" --- - - ## Name `UPDATE` — Update rows of a table. ## Synopsis -```text -UPDATE [ ] [@ ] - SET = { | DEFAULT } [, ...] - [ WHERE ] - [ RETURNING [, ...] +```sql +edb=# \h UPDATE +Command: UPDATE +Description: update rows of a table +Syntax: +[ WITH [ RECURSIVE ] with_query [, ...] ] +UPDATE [ ][ ONLY ] [@ ] [ * ] [ [ AS ] alias ] + SET { { = { | DEFAULT } | + ( [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) | + ( [, ...] ) = ( sub-SELECT ) + } [, ...] | + ROW = + } + [ FROM [, ...] ] + [ WHERE | WHERE CURRENT OF ] + [ RETURNING [, ...] { INTO { | [, ...] } | BULK COLLECT INTO [, ...] } ] + +URL: https://www.postgresql.org/docs/15/sql-update.html + https://www.enterprisedb.com/docs ``` ## Description `UPDATE` changes the values of the specified columns in all rows that satisfy the condition. You need to mention only the columns you want to modify in the `SET` clause. Columns not explicitly modified retain their values. +`SET ROW` clause is available from version 15 onwards. This clause enables us to update a target record using a record type variable or row type objects on the condition that the record or row used should have compatible data types with that table's columns in order. + You can specify the `RETURNING INTO { record | variable [, ...] }` clause only in an SPL program. In addition, the result set of the `UPDATE` command must not return more than one row. Otherwise an exception is thrown. If the result set is empty, then the contents of the target record or variables are set to null. In an SPL program, you can specify the `RETURNING BULK COLLECT INTO collection [, ...]` clause only if you use the `UPDATE` command. If you specify more than one collection as the target of the `BULK COLLECT INTO` clause, then each collection must consist of a single scalar field. That is, `collection` can't be a record. The result set of the `UPDATE` command can contain zero or more rows. `return_expression` evaluated for each row of the result set becomes an element in `collection` starting with the first element. Any existing rows in `collection` are deleted. If the result set is empty, then `collection` is empty. @@ -97,3 +111,19 @@ For all employees with `job = SALESMAN` in the `emp` table, update the salary by ```text UPDATE emp SET sal = sal * 1.1, comm = comm + 500 WHERE job = 'SALESMAN'; ``` + + +`SET ROW` example: + +```sql +CREATE TABLE db1425_t1(a INT, b INT); +INSERT INTO db1425_t1 VALUES(1,2); + +DECLARE + TYPE rec IS RECORD (x INT, y INT); + rec_var rec; +BEGIN + rec_var = row(1000, 1000); + UPDATE db1425_t1 SET ROW=rec_var WHERE a = 1; +END; +``` \ No newline at end of file From be1dc6ae16b63276a968ef901ea20507ca2fc453 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 14 Jun 2022 17:44:53 +0530 Subject: [PATCH 12/77] changed the code block from text to sql --- product_docs/docs/epas/15/epas_compat_sql/76_update.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx b/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx index d8751620e64..f00107b4e9e 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx @@ -102,13 +102,13 @@ You need the `UPDATE` privilege on the table to update it. You also need the `SE Change the location to `AUSTIN` for department `20` in the `dept` table: -```text +```sql UPDATE dept SET loc = 'AUSTIN' WHERE deptno = 20; ``` For all employees with `job = SALESMAN` in the `emp` table, update the salary by 10%, and increase the commission by 500: -```text +```sql UPDATE emp SET sal = sal * 1.1, comm = comm + 500 WHERE job = 'SALESMAN'; ``` From d4f5100cab4c83f5428a1453b44c3a4ebe591b56 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Mon, 20 Jun 2022 11:45:30 +0530 Subject: [PATCH 13/77] Update the content as per the feedback given by Beena on DB-1638 --- .../05_optimizer_hints/02_access_method_hints.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx index 6e8c166ac15..242c31e035d 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx @@ -19,7 +19,7 @@ The following hints influence how the optimizer accesses relations to create the In addition, you can use the `ALL_ROWS`, `FIRST_ROWS`, and `FIRST_ROWS(n)` hints. -From version 15 onwards, `INDEX` and `NO_INDEX` hints for the partitioned table inherit the corresponding child indexes and apply in later processing. +From version 15 onwards, `INDEX` and `NO_INDEX` hints for the partitioned table, internally expand to include the corresponding inherited child indexes and apply in later processing. ## Examples From 206fa574902818d249e662c17845812f2e71ba6c Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Mon, 20 Jun 2022 13:15:17 +0530 Subject: [PATCH 14/77] fixed the error in efm docs (as deploy was failing) --- product_docs/docs/efm/4/efm_deploy_arch/06_efm_pgpool.mdx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/product_docs/docs/efm/4/efm_deploy_arch/06_efm_pgpool.mdx b/product_docs/docs/efm/4/efm_deploy_arch/06_efm_pgpool.mdx index 99b206ea4ad..540ffb46a37 100644 --- a/product_docs/docs/efm/4/efm_deploy_arch/06_efm_pgpool.mdx +++ b/product_docs/docs/efm/4/efm_deploy_arch/06_efm_pgpool.mdx @@ -220,8 +220,6 @@ and takes charge as the leader EDB Pgpool-II instance. For Failover Manager / EDB Pgpool-II integration using the network load balancer in AWS or Azure, you need to perform some additional steps. - - Add the following rules to the security groups to be used by the EDB Pgpool-II instances: - Rules for the security group to be used by the EDB Pgpool-II instances (SG @@ -274,8 +272,6 @@ traffic to the remaining two EDB Pgpool-II processes. Make sure that the `listen_backlog_multiplier` parameter is tuned to compensate for the higher number of connections in case of failover. - - #### Configuring NLB in AWS The following assumptions have been taken for the sample configuration: From 1b457f833445c1ec8120893367ce9dddaffd9e96 Mon Sep 17 00:00:00 2001 From: Chris Estes <106166814+ccestes@users.noreply.github.com> Date: Fri, 1 Jul 2022 16:09:05 -0400 Subject: [PATCH 15/77] EPAS: updating code blocks --- .../41/05_using_edb_plus_with_ssl.mdx | 2 +- .../docs/edb_plus/41/06_command_summary.mdx | 2 +- .../epas/15/ecpgplus_guide/02_overview.mdx | 26 +- .../ecpgplus_guide/03_using_embedded_sql.mdx | 44 +-- .../ecpgplus_guide/04_using_descriptors.mdx | 73 ++--- ...lding_executing_dynamic_sql_statements.mdx | 94 +++---- .../15/ecpgplus_guide/06_error_handling.mdx | 8 +- .../epas/15/ecpgplus_guide/07_reference.mdx | 234 ++++++++-------- .../epas/15/edb_pgadmin_linux_qs/index.mdx | 10 +- .../02_packages/01_package_components.mdx | 24 +- .../02_packages/01a_display_packages.mdx | 10 +- .../02_packages/02_creating_packages.mdx | 4 +- .../02_packages/03_referencing_a_package.mdx | 2 +- ...using_packages_with_user_defined_types.mdx | 14 +- .../02_packages/05_dropping_a_package.mdx | 6 +- .../03_built-in_packages/01_dbms_alert.mdx | 36 +-- .../02_dbms_aq/01_enqueue.mdx | 8 +- .../02_dbms_aq/02_dequeue.mdx | 8 +- .../02_dbms_aq/03_register.mdx | 4 +- .../02_dbms_aq/04_unregister.mdx | 4 +- .../03_dbms_aqadm/01_alter_queue.mdx | 4 +- .../03_dbms_aqadm/02_alter_queue_table.mdx | 4 +- .../03_dbms_aqadm/03_create_queue.mdx | 4 +- .../03_dbms_aqadm/04_create_queue_table.mdx | 8 +- .../03_dbms_aqadm/05_drop_queue.mdx | 4 +- .../03_dbms_aqadm/06_drop_queue_table.mdx | 4 +- .../03_dbms_aqadm/07_purge_queue_table.mdx | 4 +- .../03_dbms_aqadm/08_start_queue.mdx | 4 +- .../03_dbms_aqadm/09_stop_queue.mdx | 4 +- .../04_dbms_crypto/01_decrypt.mdx | 8 +- .../04_dbms_crypto/02_encrypt.mdx | 8 +- .../04_dbms_crypto/03_hash.mdx | 4 +- .../04_dbms_crypto/04_mac.mdx | 4 +- .../04_dbms_crypto/05_randombytes.mdx | 4 +- .../04_dbms_crypto/06_randominteger.mdx | 4 +- .../04_dbms_crypto/07_randomnumber.mdx | 4 +- .../05_dbms_job/01_broken.mdx | 6 +- .../05_dbms_job/02_change.mdx | 4 +- .../05_dbms_job/03_interval.mdx | 4 +- .../05_dbms_job/04_next_date.mdx | 4 +- .../05_dbms_job/05_remove.mdx | 4 +- .../05_dbms_job/06_run.mdx | 4 +- .../05_dbms_job/07_submit.mdx | 8 +- .../05_dbms_job/08_what.mdx | 4 +- .../05_dbms_job/index.mdx | 4 +- .../06_dbms_lob/01_append.mdx | 2 +- .../06_dbms_lob/02_compare.mdx | 2 +- .../06_dbms_lob/03_converttoblob.mdx | 2 +- .../06_dbms_lob/04_converttoclob.mdx | 2 +- .../06_dbms_lob/05_copy.mdx | 2 +- .../06_dbms_lob/06_erase.mdx | 2 +- .../06_dbms_lob/07_get_storage_limit.mdx | 2 +- .../06_dbms_lob/08_getlength.mdx | 2 +- .../06_dbms_lob/09_instr.mdx | 2 +- .../06_dbms_lob/10_read.mdx | 2 +- .../06_dbms_lob/11_substr.mdx | 2 +- .../06_dbms_lob/12_trim.mdx | 2 +- .../06_dbms_lob/13_write.mdx | 2 +- .../06_dbms_lob/14_writeappend.mdx | 2 +- .../03_built-in_packages/07_dbms_lock.mdx | 2 +- .../08_dbms_mview/01_get_mv_dependencies.mdx | 4 +- .../08_dbms_mview/02_refresh.mdx | 6 +- .../08_dbms_mview/03_refresh_all_mviews.mdx | 4 +- .../08_dbms_mview/04_refresh_dependent.mdx | 6 +- .../03_built-in_packages/09_dbms_output.mdx | 42 +-- .../10_dbms_pipe/01_create_pipe.mdx | 6 +- .../10_dbms_pipe/02_next_item_pipe.mdx | 4 +- .../10_dbms_pipe/03_pack_message.mdx | 2 +- .../10_dbms_pipe/04_purge.mdx | 10 +- .../10_dbms_pipe/05_receive_message.mdx | 2 +- .../10_dbms_pipe/06_remove_pipe.mdx | 12 +- .../10_dbms_pipe/07_reset_buffer.mdx | 6 +- .../10_dbms_pipe/08_send_message.mdx | 2 +- .../10_dbms_pipe/09_unique_session_name.mdx | 4 +- .../10_dbms_pipe/10_unpack_message.mdx | 2 +- .../10_dbms_pipe/11_comprehensive_example.mdx | 8 +- .../03_built-in_packages/11_dbms_profiler.mdx | 45 +-- .../03_built-in_packages/12_dbms_random.mdx | 34 +-- .../03_built-in_packages/13_dbms_redact.mdx | 39 +-- .../03_built-in_packages/14_dbms_rls.mdx | 40 +-- .../15_dbms_scheduler/02_create_job.mdx | 6 +- .../15_dbms_scheduler/03_create_program.mdx | 4 +- .../15_dbms_scheduler/04_create_schedule.mdx | 4 +- .../05_define_program_argument.mdx | 6 +- .../06_dbms_scheduler_disable.mdx | 4 +- .../15_dbms_scheduler/07_drop_job.mdx | 4 +- .../15_dbms_scheduler/08_drop_program.mdx | 4 +- .../09_drop_program_argument.mdx | 8 +- .../15_dbms_scheduler/10_drop_schedule.mdx | 4 +- .../11_dbms_scheduler_enable.mdx | 4 +- .../12_evaluate_calendar_string.mdx | 4 +- .../15_dbms_scheduler/13_run_job.mdx | 4 +- .../14_set_job_argument_value.mdx | 8 +- .../15_dbms_scheduler/index.mdx | 2 +- .../03_built-in_packages/16_dbms_session.mdx | 4 +- .../17_dbms_sql/01_bind_variable.mdx | 4 +- .../17_dbms_sql/02_bind_variable_char.mdx | 2 +- .../17_dbms_sql/03_bind_variable_raw.mdx | 2 +- .../17_dbms_sql/04_close_cursor.mdx | 4 +- .../17_dbms_sql/05_column_value.mdx | 4 +- .../17_dbms_sql/06_column_value_char.mdx | 2 +- .../17_dbms_sql/07_column_value_raw.mdx | 4 +- .../17_dbms_sql/08_define_column.mdx | 6 +- .../17_dbms_sql/09_define_column_char.mdx | 2 +- .../17_dbms_sql/10_define_column_raw.mdx | 6 +- .../17_dbms_sql/11_describe_columns.mdx | 2 +- .../17_dbms_sql/12_execute.mdx | 4 +- .../17_dbms_sql/13_execute_and_fetch.mdx | 4 +- .../17_dbms_sql/14_fetch_rows.mdx | 4 +- .../17_dbms_sql/15_is_open.mdx | 2 +- .../17_dbms_sql/16_last_row_count.mdx | 8 +- .../17_dbms_sql/17_open_cursor.mdx | 4 +- .../17_dbms_sql/18_parse.mdx | 8 +- .../03_built-in_packages/18_dbms_utility.mdx | 77 +++--- .../19_utl_encode/01_base64_decode.mdx | 15 +- .../19_utl_encode/02_base64_encode.mdx | 13 +- .../19_utl_encode/03_mimeheader_decode.mdx | 9 +- .../19_utl_encode/04_mimeheader_encode.mdx | 9 +- .../05_quoted_printable_decode.mdx | 11 +- .../06_quoted_printable_encode.mdx | 11 +- .../19_utl_encode/07_text_decode.mdx | 9 +- .../19_utl_encode/08_text_encode.mdx | 9 +- .../19_utl_encode/09_uudecode.mdx | 11 +- .../19_utl_encode/10_uuencode.mdx | 11 +- .../03_built-in_packages/20_utl_file.mdx | 76 ++--- .../03_built-in_packages/21_utl_http.mdx | 106 +++---- .../03_built-in_packages/22_utl_mail.mdx | 10 +- .../03_built-in_packages/23_utl_raw.mdx | 33 ++- .../03_built-in_packages/24_utl_smtp.mdx | 40 +-- .../03_built-in_packages/25_utl_url.mdx | 10 +- .../03_built-in_packages/index.mdx | 2 +- .../02_edb_redwood_raw_names.mdx | 13 +- .../03_edb_redwood_strings.mdx | 8 +- .../01_introduction/04_edb_stmt_level_tx.mdx | 8 +- .../01_introduction/05_oracle_home.mdx | 2 +- ..._about_the_examples_used_in_this_guide.mdx | 6 +- .../01_sample_database_installation.mdx | 2 +- .../02_sample_database_description.mdx | 2 +- .../02_creating_a_new_table.mdx | 4 +- .../03_populating_a_table_with_rows.mdx | 6 +- .../02_sql_tutorial/04_querying_a_table.mdx | 21 +- .../05_joins_between_tables.mdx | 24 +- .../06_aggregate_functions.mdx | 24 +- .../02_sql_tutorial/07_updates.mdx | 9 +- .../02_sql_tutorial/08_deletions.mdx | 14 +- .../03_advanced_concepts/01_views.mdx | 10 +- .../03_advanced_concepts/02_foreign_keys.mdx | 4 +- .../03_the_rownum_pseudo_column.mdx | 14 +- .../03_advanced_concepts/04_synonyms.mdx | 22 +- ...ization_tree_in_the_sample_application.mdx | 5 +- .../05_hierarchical_queries/04_node_level.mdx | 5 +- .../05_ordering_the_siblings.mdx | 10 +- ...ing_the_root_node_with_connect_by_root.mdx | 29 +- ...ieving_a_path_with_sys_connect_by_path.mdx | 6 +- .../05_hierarchical_queries/index.mdx | 24 +- .../01_rollup_extension.mdx | 19 +- .../02_cube_extension.mdx | 19 +- .../03_grouping_sets_extension.mdx | 39 +-- .../04_grouping_function.mdx | 19 +- .../05_grouping_id_function.mdx | 12 +- .../06_multidimensional_analysis/index.mdx | 11 +- .../01_creating_a_password_function.mdx | 24 +- .../01_creating_a_new_profile/index.mdx | 10 +- .../02_altering_a_profile.mdx | 6 +- .../03_dropping_a_profile.mdx | 6 +- ...iating_a_profile_with_an_existing_role.mdx | 10 +- .../05_unlocking_a_locked_account.mdx | 10 +- ...g_a_new_role_associated_with_a_profile.mdx | 10 +- ...acking_up_profile_management_functions.mdx | 2 +- .../01_default_optimization_modes.mdx | 12 +- .../03_specifying_a_join_order.mdx | 4 +- .../04_joining_relations_hints.mdx | 20 +- .../05_optimizer_hints/05_global_hints.mdx | 24 +- .../06_using_the_append_optimizer_hint.mdx | 8 +- .../07_parallelism_hints.mdx | 46 ++-- .../05_optimizer_hints/index.mdx | 4 +- .../01_dblink_ora_connect.mdx | 4 +- .../02_dblink_ora_status.mdx | 2 +- .../03_dblink_ora_disconnect.mdx | 2 +- .../04_dblink_ora_record.mdx | 2 +- .../05_dblink_ora_call.mdx | 2 +- .../06_dblink_ora_exec.mdx | 2 +- .../07_dblink_ora_copy.mdx | 2 +- .../02_calling_dblink_ora_functions.mdx | 8 +- .../06_dblink_ora/index.mdx | 8 +- .../01_sql_syntax/01_lexical_structure.mdx | 2 +- .../02_identifiers_and_key_words.mdx | 10 +- .../01_sql_syntax/03_constants.mdx | 15 +- .../01_sql_syntax/04_comments.mdx | 2 +- .../02_data_types/01_numeric_types.mdx | 4 +- .../02_data_types/02_character_types.mdx | 2 +- .../02_data_types/04_date_time_types.mdx | 2 +- .../02_data_types/06_xml_type.mdx | 4 +- ...3_mathematical_functions_and_operators.mdx | 21 +- .../04_string_functions_and_operators.mdx | 25 +- .../05_pattern_matching_string_functions.mdx | 24 +- ...ttern_matching_using_the_like_operator.mdx | 4 +- .../07_data_type_formatting_functions.mdx | 27 +- .../08_date_time_functions_and_operators.mdx | 260 ++++++++++-------- .../09_sequence_manipulation_functions.mdx | 2 +- .../10_conditional_expressions.mdx | 35 +-- .../11_aggregate_functions.mdx | 56 ++-- .../12_subquery_expressions.mdx | 14 +- .../13_identifier_functions.mdx | 47 ++-- .../14_bitwise_functions.mdx | 16 +- .../02_case_sensitivity.mdx | 6 +- .../06_user_defined_pl_sql_subtypes.mdx | 14 +- .../02_spl_block_structure.mdx | 14 +- .../01_creating_a_procedure.mdx | 6 +- .../02_calling_a_procedure.mdx | 2 +- .../03_deleting_a_procedure.mdx | 4 +- .../01_creating_a_function.mdx | 8 +- .../02_calling_a_function.mdx | 6 +- .../03_deleting_a_function.mdx | 4 +- ...positional_vs_named_parameter_notation.mdx | 14 +- .../03_using_default_values_in_parameters.mdx | 8 +- .../index.mdx | 7 +- .../01_creating_a_subprocedure.mdx | 13 +- .../02_creating_a_subfunction.mdx | 7 +- .../03_block_relationships.mdx | 2 +- .../04_invoking_subprograms.mdx | 30 +- .../05_using_forward_declarations.mdx | 5 +- .../06_overloading_subprograms.mdx | 9 +- .../07_accessing_subprogram_variables.mdx | 29 +- ...ion_errors_in_procedures_and_functions.mdx | 8 +- .../01_execute_privilege.mdx | 4 +- .../02_database_object_name_resolution.mdx | 3 +- .../05_security_example.mdx | 28 +- .../01_declaring_a_variable.mdx | 8 +- ...2_using__type_in_variable_declarations.mdx | 10 +- ...using__row_type_in_record_declarations.mdx | 2 +- ...ined_record_types_and_record_variables.mdx | 10 +- .../04_basic_statements/01_assignment.mdx | 2 +- .../04_basic_statements/02_delete.mdx | 6 +- .../04_basic_statements/03_insert.mdx | 6 +- .../04_basic_statements/04_null.mdx | 6 +- .../05_using_the_returning_into_clause.mdx | 14 +- .../04_basic_statements/06_select_into.mdx | 10 +- .../04_basic_statements/07_update.mdx | 6 +- .../08_obtaining_the_result_status.mdx | 6 +- .../01_if_statement/01_if_then.mdx | 7 +- .../01_if_statement/02_if_then_else.mdx | 7 +- .../01_if_statement/03_if_then_else_if.mdx | 3 +- .../04_if_then_elseif_else.mdx | 7 +- .../02_return_statement.mdx | 6 +- .../03_goto_statement.mdx | 4 +- .../01_selector_case_expression.mdx | 7 +- .../02_searched_case_expression.mdx | 7 +- .../01_selector_case_statement.mdx | 7 +- .../02_searched_case_statement.mdx | 7 +- .../06_loops/01_loop.mdx | 2 +- .../06_loops/02_exit.mdx | 7 +- .../06_loops/03_continue.mdx | 5 +- .../06_loops/04_while.mdx | 7 +- .../06_loops/05_for_integer_variant.mdx | 9 +- .../07_exception_handling.mdx | 2 +- .../08_user_defined_exceptions.mdx | 8 +- .../09_pragma_exception_init.mdx | 12 +- .../10_raise_application_error.mdx | 8 +- .../06_transaction_control/01_commit.mdx | 11 +- .../06_transaction_control/02_rollback.mdx | 24 +- .../03_pragma_autonomous_transaction.mdx | 78 +++--- .../15/epas_compat_spl/07_dynamic_sql.mdx | 11 +- .../01_declaring_a_cursor.mdx | 4 +- .../08_static_cursors/02_opening_a_cursor.mdx | 4 +- .../03_fetching_rows_from_a_cursor.mdx | 8 +- .../08_static_cursors/04_closing_a_cursor.mdx | 8 +- .../05_using__rowtype_with_cursors.mdx | 6 +- .../06_cursor_attributes/01_isopen.mdx | 2 +- .../06_cursor_attributes/02_found.mdx | 6 +- .../06_cursor_attributes/03_notfound.mdx | 6 +- .../06_cursor_attributes/04_rowcount.mdx | 6 +- .../08_static_cursors/07_cursor_for_loop.mdx | 8 +- .../08_parameterized_cursors.mdx | 4 +- ...laring_a_sys_refcursor_cursor_variable.mdx | 4 +- ..._user_defined_ref_cursor_type_variable.mdx | 4 +- .../03_opening_a_cursor_variable.mdx | 4 +- ...4_fetching_rows_from_a_cursor_variable.mdx | 2 +- .../05_closing_a_cursor_variable.mdx | 6 +- ...returning_a_ref_cursor_from_a_function.mdx | 7 +- .../02_modularizing_cursor_operations.mdx | 17 +- .../08_dynamic_queries_with_ref_cursors.mdx | 18 +- .../10_collections/01_associative_arrays.mdx | 18 +- .../10_collections/02_nested_tables.mdx | 23 +- .../10_collections/03_varrays.mdx | 9 +- .../11_collection_methods/01_count.mdx | 7 +- .../11_collection_methods/02_deletes.mdx | 8 +- .../11_collection_methods/03_exists.mdx | 4 +- .../11_collection_methods/04_extend.mdx | 12 +- .../11_collection_methods/05_first.mdx | 4 +- .../11_collection_methods/06_last.mdx | 4 +- .../11_collection_methods/07_limit.mdx | 2 +- .../11_collection_methods/08_next.mdx | 4 +- .../11_collection_methods/09_prior.mdx | 4 +- .../11_collection_methods/10_trim.mdx | 6 +- .../12_working_with_collections/01_table.mdx | 6 +- .../02_using_the_multiset_union_operator.mdx | 8 +- .../03_using_the_forall_statement.mdx | 12 +- .../01_select_bulk_collect.mdx | 10 +- .../02_fetch_bulk_collect.mdx | 6 +- .../03_execute_immediate_bulk_collect.mdx | 2 +- .../04_returning_bulk_collect.mdx | 18 +- .../05_errors_and_messages.mdx | 4 +- .../13_triggers/03_creating_triggers.mdx | 18 +- .../13_triggers/06_compound_triggers.mdx | 2 +- .../01_before_statement_level_trigger.mdx | 6 +- .../02_after_statement_level_trigger.mdx | 6 +- .../03_before_row_level_trigger.mdx | 6 +- .../04_after_row_level_trigger.mdx | 15 +- .../05_instead_of_trigger.mdx | 11 +- .../06_compound_trigger.mdx | 41 +-- .../01_object_type_specification_syntax.mdx | 8 +- .../02_object_type_body_syntax.mdx | 6 +- .../01_member_methods.mdx | 6 +- .../02_static_methods.mdx | 6 +- .../03_constructor_methods.mdx | 8 +- .../03_creating_object_types/index.mdx | 2 +- .../04_creating_object_instances.mdx | 8 +- .../05_referencing_an_object.mdx | 17 +- .../06_dropping_an_object_type.mdx | 8 +- .../15/epas_compat_sql/02_alter_directory.mdx | 8 +- .../15/epas_compat_sql/03_alter_index.mdx | 12 +- .../15/epas_compat_sql/04_alter_procedure.mdx | 4 +- .../15/epas_compat_sql/05_alter_profile.mdx | 6 +- .../15/epas_compat_sql/06_alter_queue.mdx | 16 +- .../epas_compat_sql/07_alter_queue_table.mdx | 4 +- .../08_alter_role_identified_by.mdx | 4 +- ..._database_link_and_dbms_rls_privileges.mdx | 24 +- .../15/epas_compat_sql/10_alter_sequence.mdx | 4 +- .../15/epas_compat_sql/11_alter_session.mdx | 6 +- .../15/epas_compat_sql/12_alter_table.mdx | 26 +- .../15/epas_compat_sql/13_alter_trigger.mdx | 18 +- .../epas_compat_sql/14_alter_tablespace.mdx | 4 +- .../15_alter_user_identified_by.mdx | 4 +- ...r_user_role_profile_management_clauses.mdx | 10 +- .../docs/epas/15/epas_compat_sql/17_call.mdx | 4 +- .../epas/15/epas_compat_sql/18_comment.mdx | 8 +- .../epas/15/epas_compat_sql/19_commit.mdx | 4 +- .../15/epas_compat_sql/20_create_database.mdx | 4 +- .../21_create_public_database_link.mdx | 74 ++--- .../epas_compat_sql/22_create_directory.mdx | 14 +- .../15/epas_compat_sql/23_create_function.mdx | 12 +- .../15/epas_compat_sql/24_create_index.mdx | 10 +- .../25_create_materialized_view.mdx | 4 +- .../15/epas_compat_sql/26_create_package.mdx | 4 +- .../27_create_package_body.mdx | 9 +- .../epas_compat_sql/28_create_procedure.mdx | 12 +- .../15/epas_compat_sql/29_create_profile.mdx | 10 +- .../15/epas_compat_sql/30_create_queue.mdx | 6 +- .../epas_compat_sql/31_create_queue_table.mdx | 6 +- .../15/epas_compat_sql/32_create_role.mdx | 4 +- .../15/epas_compat_sql/33_create_schema.mdx | 4 +- .../15/epas_compat_sql/34_create_sequence.mdx | 14 +- .../15/epas_compat_sql/35_create_synonym.mdx | 8 +- .../15/epas_compat_sql/36_create_table.mdx | 28 +- .../15/epas_compat_sql/37_create_table_as.mdx | 2 +- .../15/epas_compat_sql/38_create_trigger.mdx | 63 +++-- .../15/epas_compat_sql/39_create_type.mdx | 34 +-- .../epas_compat_sql/40_create_type_body.mdx | 8 +- .../15/epas_compat_sql/41_create_user.mdx | 4 +- ...e_user_role_profile_management_clauses.mdx | 10 +- .../15/epas_compat_sql/43_create_view.mdx | 4 +- .../epas/15/epas_compat_sql/44_delete.mdx | 4 +- .../45_drop_public_database_link.mdx | 6 +- .../15/epas_compat_sql/46_drop_directory.mdx | 4 +- .../15/epas_compat_sql/47_drop_function.mdx | 4 +- .../epas/15/epas_compat_sql/48_drop_index.mdx | 4 +- .../15/epas_compat_sql/49_drop_package.mdx | 4 +- .../15/epas_compat_sql/50_drop_procedure.mdx | 4 +- .../15/epas_compat_sql/51_drop_profile.mdx | 6 +- .../epas/15/epas_compat_sql/52_drop_queue.mdx | 4 +- .../epas_compat_sql/53_drop_queue_table.mdx | 4 +- .../15/epas_compat_sql/54_drop_synonym.mdx | 6 +- .../epas/15/epas_compat_sql/55_drop_role.mdx | 4 +- .../15/epas_compat_sql/56_drop_sequence.mdx | 4 +- .../epas/15/epas_compat_sql/57_drop_table.mdx | 6 +- .../15/epas_compat_sql/58_drop_tablespace.mdx | 4 +- .../15/epas_compat_sql/59_drop_trigger.mdx | 4 +- .../epas/15/epas_compat_sql/60_drop_type.mdx | 6 +- .../epas/15/epas_compat_sql/61_drop_user.mdx | 6 +- .../epas/15/epas_compat_sql/62_drop_view.mdx | 4 +- .../docs/epas/15/epas_compat_sql/63_exec.mdx | 4 +- .../docs/epas/15/epas_compat_sql/64_grant.mdx | 18 +- .../epas/15/epas_compat_sql/65_insert.mdx | 12 +- .../docs/epas/15/epas_compat_sql/66_lock.mdx | 4 +- .../epas/15/epas_compat_sql/67_revoke.mdx | 14 +- .../epas/15/epas_compat_sql/68_rollback.mdx | 4 +- .../69_rollback_to_savepoint.mdx | 4 +- .../epas/15/epas_compat_sql/70_savepoint.mdx | 4 +- .../epas/15/epas_compat_sql/71_select.mdx | 63 +++-- .../15/epas_compat_sql/72_set_constraints.mdx | 2 +- .../epas/15/epas_compat_sql/73_set_role.mdx | 8 +- .../15/epas_compat_sql/74_set_transaction.mdx | 4 +- .../epas/15/epas_compat_sql/75_truncate.mdx | 4 +- .../01_example_partition_pruning.mdx | 17 +- .../03_using_partition_pruning/index.mdx | 6 +- .../01_example_partition_by_list.mdx | 5 +- .../02_example_automatic_list_partition.mdx | 10 +- .../03_example_partition_by_range.mdx | 5 +- .../04_example_interval_range_partition.mdx | 10 +- .../05_example_partition_by_hash.mdx | 11 +- .../06_example_partitions_number.mdx | 66 +++-- ...artition_by_range_subpartition_by_list.mdx | 5 +- .../08_example_creating_unique_index.mdx | 17 +- .../09_example_subpartition_template.mdx | 25 +- .../01_create_table_partition_by/index.mdx | 8 +- ..._partition_to_a_list_partitioned_table.mdx | 10 +- ...partition_to_a_range_partitioned_table.mdx | 10 +- ..._a_partition_with_subpartitions_number.mdx | 30 +- .../02_alter_table_add_partition/index.mdx | 2 +- ...tion_to_a_list_range_partitioned_table.mdx | 10 +- ...tion_to_a_range_list_partitioned_table.mdx | 10 +- .../03_alter_table_add_subpartition/index.mdx | 2 +- .../01_example_splitting_a_list_partition.mdx | 12 +- ...02_example_splitting_a_range_partition.mdx | 12 +- ...ample_splitting_a_range_list_partition.mdx | 30 +- .../04_alter_table_split_partition/index.mdx | 4 +- ..._example_splitting_a_list_subpartition.mdx | 18 +- ...example_splitting_a_range_subpartition.mdx | 18 +- .../index.mdx | 4 +- ...ple_exchanging_a_table_for_a_partition.mdx | 19 +- .../index.mdx | 4 +- ..._a_partition_to_a_different_tablespace.mdx | 10 +- .../07_alter_table_move_partition/index.mdx | 4 +- .../01_example_renaming_a_partition.mdx | 10 +- .../08_alter_table_rename_partition/index.mdx | 4 +- ...le_setting_an_interval_range_partition.mdx | 12 +- .../09_alter_table_set_interval/index.mdx | 4 +- ...le_setting_an_automatic_list_partition.mdx | 12 +- .../index.mdx | 4 +- ...xample_setting_a_subpartition_template.mdx | 78 +++--- .../index.mdx | 6 +- .../12_drop_table.mdx | 6 +- .../01_example_deleting_a_partition.mdx | 10 +- .../13_alter_table_drop_partition/index.mdx | 2 +- .../01_example_deleting_a_subpartition.mdx | 10 +- .../index.mdx | 2 +- .../01_example_emptying_a_table.mdx | 12 +- .../15_truncate_table/index.mdx | 2 +- .../01_example_emptying_a_partition.mdx | 15 +- .../index.mdx | 2 +- .../01_example_emptying_a_subpartition.mdx | 15 +- .../index.mdx | 2 +- .../18_accessing_partition_table/index.mdx | 49 ++-- ...s_in_a_list_or_range_partitioned_table.mdx | 42 +-- ...ning_keys_in_a_range_partitioned_table.mdx | 5 +- .../index.mdx | 3 +- .../epas_compat_tools_guide/02_edb_loader.mdx | 143 +++++----- .../epas_compat_tools_guide/03_edb_wrap.mdx | 22 +- ...strumentation_tools_architecture_DRITA.mdx | 136 +++++---- .../01_introduction/03_examples_used.mdx | 6 +- .../01_setting_new_parameters.mdx | 6 +- .../16_pg_prewarm.autoprewarm.mdx | 2 +- .../06_reporting_and_logging_what_to_log.mdx | 6 +- .../11_compatibility_options.mdx | 42 +-- .../12_customized_options.mdx | 19 +- .../13_ungrouped.mdx | 6 +- .../02_index_advisor_configuration.mdx | 6 +- .../03_using_index_advisor.mdx | 26 +- ...wing_the_index_advisor_recommendations.mdx | 34 ++- .../05_index_advisor_limitations.mdx | 2 +- .../03_sql_profiler.mdx | 8 +- .../03_database_administration/04_pgsnmpd.mdx | 14 +- .../02_selecting_sql_statements_to_audit.mdx | 75 +++-- .../03_enabling_audit_logging.mdx | 38 ++- .../04_audit_log_file.mdx | 7 +- ...using_error_codes_to_filter_audit_logs.mdx | 2 +- ...sing_command_tags_to_filter_audit_logs.mdx | 2 +- ...07_redacting_passwords_from_audit_logs.mdx | 8 +- .../08_audit_log_archiving.mdx | 8 +- .../09_object_auditing.mdx | 36 ++- .../06_unicode_collation_algorithm.mdx | 25 +- .../15/epas_guide/10_edb_resource_manager.mdx | 132 +++++---- .../epas/15/epas_guide/11_libpq_c_library.mdx | 28 +- .../docs/epas/15/epas_guide/12_debugger.mdx | 9 +- .../13_performance_analysis_and_tuning.mdx | 50 ++-- .../15/epas_guide/14_edb_clone_schema.mdx | 138 ++++++---- ...5_enhanced_sql_and_other_misc_features.mdx | 14 +- .../17_advanced_server_keywords.mdx | 5 +- .../docs/epas/15/epas_qs_linux_7/index.mdx | 29 +- .../docs/epas/15/epas_qs_linux_8/index.mdx | 29 +- .../02_configuring_sql_protect.mdx | 69 +++-- .../03_common_maintenance_operations.mdx | 64 +++-- .../04_backing_up_restoring_sql_protect.mdx | 53 ++-- .../15/epas_security_guide/04_sslutils.mdx | 8 +- .../epas_security_guide/05_data_redaction.mdx | 29 +- .../02_installing_language_pack.mdx | 6 +- .../03_using_the_procedural_languages.mdx | 11 +- .../01_performing_an_upgrade/index.mdx | 2 +- .../02_invoking_pg_upgrade/index.mdx | 2 +- .../03_upgrading_to_advanced_server.mdx | 32 +-- ..._version_update_of_an_rpm_installation.mdx | 6 +- 492 files changed, 3677 insertions(+), 3032 deletions(-) diff --git a/product_docs/docs/edb_plus/41/05_using_edb_plus_with_ssl.mdx b/product_docs/docs/edb_plus/41/05_using_edb_plus_with_ssl.mdx index bc934863499..337d345fef2 100644 --- a/product_docs/docs/edb_plus/41/05_using_edb_plus_with_ssl.mdx +++ b/product_docs/docs/edb_plus/41/05_using_edb_plus_with_ssl.mdx @@ -176,7 +176,7 @@ The `keytool` program can be found under the `bin` subdirectory of the Java Runt You are prompted for a new password. Save this password as you must specify it with the `PGSSLCERTPASS` environment variable. -```text +```shell $ /usr/java/jdk1.8.0_131/jre/bin/keytool -keystore postgresql.keystore \ > -alias postgresqlstore -import -file edb_root.crt.der Enter keystore password: diff --git a/product_docs/docs/edb_plus/41/06_command_summary.mdx b/product_docs/docs/edb_plus/41/06_command_summary.mdx index ea14d5608dd..410e329ecec 100644 --- a/product_docs/docs/edb_plus/41/06_command_summary.mdx +++ b/product_docs/docs/edb_plus/41/06_command_summary.mdx @@ -308,7 +308,7 @@ Connected to EnterpriseDB 14.0.0 (localhost:5444/edb) AS enterprisedb The `DEFINE` command creates or replaces the value of a *user variable* (also called a *substitution variable*). -```text +```sql DEF[INE ] [ variable [ = text ] ] ``` diff --git a/product_docs/docs/epas/15/ecpgplus_guide/02_overview.mdx b/product_docs/docs/epas/15/ecpgplus_guide/02_overview.mdx index 483088149ae..95e1b618dca 100644 --- a/product_docs/docs/epas/15/ecpgplus_guide/02_overview.mdx +++ b/product_docs/docs/epas/15/ecpgplus_guide/02_overview.mdx @@ -38,7 +38,7 @@ A client application contains a mix of C code and SQL code made up of the follow For example: -```text +```c 1 #include 2 EXEC SQL INCLUDE sqlca; 3 @@ -93,7 +93,7 @@ In this code fragment: Prefix any SQL statement with `EXEC SQL`. The SQL statement extends to the next (unquoted) semicolon. For example: -```text +```sql printf(“Updating employee salaries\n”); EXEC SQL UPDATE emp SET sal = sal * 1.25; @@ -104,7 +104,7 @@ printf(“Employee salaries updated\n”); When the preprocessor encounters this code fragment, it passes the C code (the first line and the last line) to the output file without translation and converts each `EXEC SQL` statement into a call to an `ecpglib` function. The result is similar to the following: -```text +```c printf("Updating employee salaries\n"); { @@ -138,14 +138,14 @@ When invoking the ECPGPlus compiler, the executable must be in your search path On Windows: -```text +```shell set EDB_PATH=C:\Program Files\edb\as14\bin set PATH=%EDB_PATH%;%PATH% ``` On Linux: -```text +```shell export EDB_PATH==/usr/edb/as14/bin export PATH=$EDB_PATH:$PATH ``` @@ -161,7 +161,7 @@ A makefile contains a set of instructions that tell the make utility how to tran The following code is an example of a makefile for the samples included in this documentation. To use the sample code, save it in a file named `makefile` in the directory that contains the source code file. -```text +```c INCLUDES = -I$(shell pg_config --includedir) LIBPATH = -L $(shell pg_config --libdir) CFLAGS += $(INCLUDES) -g @@ -179,7 +179,7 @@ LDLIBS += $(LIBPATH) -lecpg -lpq The first two lines use the `pg_config` program to locate the necessary header files and library directories: -```text +```sql INCLUDES = -I$(shell pg_config --includedir) LIBPATH = -L $(shell pg_config --libdir) ``` @@ -188,7 +188,7 @@ The `pg_config` program is shipped with EDB Postgres Advanced Server. make knows to use the `CFLAGS` variable when running the C compiler and `LDFLAGS` and `LDLIBS` when invoking the linker. ECPG programs must be linked against the ECPG runtime library (`-lecpg`) and the libpq library (`-lpq`). -```text +```sql CFLAGS += $(INCLUDES) -g LDFLAGS += -g LDLIBS += $(LIBPATH) -lecpg -lpq @@ -196,14 +196,14 @@ LDLIBS += $(LIBPATH) -lecpg -lpq The sample makefile tells make how to translate a `.pgc` or a `.pc` file into a C program. Two lines in the makefile specify the mode in which the source file is compiled. The first compile option is: -```text +```c .pgc.c: ecpg -c $(INCLUDES) $? ``` The first option tells make how to transform a file that ends in `.pgc` (presumably, an ECPG source file) into a file that ends in `.c` (a C program), using community ECPG, without the ECPGPlus enhancements. It invokes the ECPG precompiler with the `-c` flag, which instructs the compiler to convert SQL code into C, using the value of the `INCLUDES` variable and the name of the `.pgc` file. -```text +```c .pc.c: ecpg -C PROC -c $(INCLUDES) $? ``` @@ -212,7 +212,7 @@ The second option tells make how to transform a file that ends in `.pg` (an ECPG When you run make, pass the name of the ECPG source code file you want to compile. For example, to compile an ECPG source code file named `customer_list.pgc`, use the command: -```text +```shell make customer_list ``` @@ -228,13 +228,13 @@ In the sample makefile, make includes the `-C` option when invoking ECPGPlus to If you include the `-C` `PROC` keywords on the command line, in addition to the ECPG syntax, you can use Pro\*C command line syntax. For example: -```text +```shell $ ecpg -C PROC INCLUDE=/usr/edb/as14/include acct_update.c ``` To display a complete list of the other ECPGPlus options available, in the ECPGPlus installation directory, enter: -```text +```shell ./ecpg --help ``` diff --git a/product_docs/docs/epas/15/ecpgplus_guide/03_using_embedded_sql.mdx b/product_docs/docs/epas/15/ecpgplus_guide/03_using_embedded_sql.mdx index e78d63290e2..702842fab06 100644 --- a/product_docs/docs/epas/15/ecpgplus_guide/03_using_embedded_sql.mdx +++ b/product_docs/docs/epas/15/ecpgplus_guide/03_using_embedded_sql.mdx @@ -15,7 +15,7 @@ legacyRedirectsGenerated: The first code sample shows how to execute a `SELECT` statement that returns a single row, storing the results in a group of host variables. After declaring host variables, it connects to the `edb` sample database using a hard-coded role name and the associated password and queries the `emp` table. The query returns the values into the declared host variables. After checking the value of the `NULL` indicator variable, it prints a simple result set onscreen and closes the connection. -```text +```c /************************************************************ * print_emp.pgc * @@ -60,7 +60,7 @@ int main(void) The code sample begins by including the prototypes and type definitions for the C `stdio` library and then declares the `main` function: -```text +```c #include int main(void) @@ -69,7 +69,7 @@ int main(void) Next, the application declares a set of host variables used to interact with the database server: -```text +```c EXEC SQL BEGIN DECLARE SECTION; int v_empno; char v_ename[40]; @@ -85,13 +85,13 @@ The data type associated with each variable in the declaration section is a C da The next statement tells the server how to handle an error: -```text +```sql EXEC SQL WHENEVER SQLERROR sqlprint; ``` If the client application encounters an error in the SQL code, the server prints an error message to `stderr` (standard error), using the `sqlprint()` function supplied with `ecpglib`. The next `EXEC SQL` statement establishes a connection with EDB Postgres Advanced Server: -```text +```sql EXEC SQL CONNECT TO edb USER 'alice' IDENTIFIED BY '1safepwd'; ``` @@ -100,7 +100,7 @@ In this example, the client application connects to the `edb` database using a r The code then performs a query against the `emp` table: -```text +```sql EXEC SQL SELECT empno, ename, sal, comm @@ -120,7 +120,7 @@ The `comm` column contains the commission values earned by an employee and can p The code checks the null indicator and displays the appropriate results: -```text +```C if (v_comm_ind) printf("empno(%d), ename(%s), sal(%.2f) comm(NULL)\n", v_empno, v_ename, v_sal); @@ -133,7 +133,7 @@ If the null indicator is `0` (that is, `false`), the `comm` column contains a me The final statement in the code sample closes the connection to the server: -```text +```sql EXEC SQL DISCONNECT; } ``` @@ -168,7 +168,7 @@ The code fragments that follow show using host variables in code compiled in `PR If you're compiling in `PROC` mode, you can omit the `EXEC SQL BEGIN DECLARE SECTION` and `EXEC SQL END DECLARE SECTION` directives. `PROC` mode permits you to use C function parameters as host variables: -```text +```c void addDept(int v_deptno, char v_dname, char v_loc) { EXEC SQL INSERT INTO dept VALUES( :v_deptno, :v_dname, :v_loc); @@ -177,7 +177,7 @@ void addDept(int v_deptno, char v_dname, char v_loc) If you aren't compiling in `PROC` mode, you must wrap embedded variable declarations with the `EXEC SQL BEGIN DECLARE SECTION` and the `EXEC SQL END DECLARE SECTION` directives: -```text +```c void addDept(int v_deptno, char v_dname, char v_loc) { EXEC SQL BEGIN DECLARE SECTION; @@ -192,7 +192,7 @@ void addDept(int v_deptno, char v_dname, char v_loc) You can also include the `INTO` clause in a `SELECT` statement to use the host variables to retrieve information: -```text +```sql EXEC SQL SELECT deptno, dname, loc INTO :v_deptno, :v_dname, v_loc FROM dept; ``` @@ -210,7 +210,7 @@ The code sample that follows shows using a cursor to process a result set. Four After declaring host variables, the example connects to the `edb` database using a user-supplied role name and password and queries the `emp` table. The query returns the values into a cursor named `employees`. The code sample then opens the cursor and loops through the result set a row at a time, printing the result set. When the sample detects the end of the result set, it closes the connection. -```text +```c /************************************************************ * print_emps.pgc * @@ -264,7 +264,7 @@ int main(int argc, char *argv[]) The code sample begins by including the prototypes and type definitions for the C `stdio` library and then declares the `main` function: -```text +```c #include int main(int argc, char *argv[]) @@ -273,7 +273,7 @@ int main(int argc, char *argv[]) Next, the application declares a set of host variables used to interact with the database server: -```text +```sql EXEC SQL BEGIN DECLARE SECTION; char *username = argv[1]; char *password = argv[2]; @@ -291,13 +291,13 @@ You might think that you can refer to `argv[1]` and `argv[2]` in a SQL statement The next statement tells the server to respond to an SQL error by printing the text of the error message returned by ECPGPlus or the database server: -```text +```sql EXEC SQL WHENEVER SQLERROR sqlprint; ``` Then, the client application establishes a connection with EDB Postgres Advanced Server: -```text +```sql EXEC SQL CONNECT TO edb USER :username IDENTIFIED BY :password; ``` @@ -305,7 +305,7 @@ The `CONNECT` statement creates a connection to the `edb` database, using the va The next statement declares a cursor named `employees`: -```text +```sql EXEC SQL DECLARE employees CURSOR FOR SELECT empno, ename, sal, comm  @@ -317,19 +317,19 @@ EXEC SQL DECLARE employees CURSOR FOR Before fetching rows from the cursor, the client application must `OPEN` the cursor: -```text +```sql EXEC SQL OPEN employees; ``` In the subsequent `FETCH` section, the client application loops through the contents of the cursor. The client application includes a `WHENEVER` statement that instructs the server to `break` (that is, terminate the loop) when it reaches the end of the cursor: -```text +```sql EXEC SQL WHENEVER NOT FOUND DO break; ``` The client application then uses a `FETCH` statement to retrieve each row from the cursor `INTO` the previously declared host variables: -```text +```c for (;;) { EXEC SQL FETCH NEXT FROM employees @@ -343,7 +343,7 @@ The `FETCH` statement also includes the `INDICATOR` keyword and a host variable The code then checks the null indicator and displays the appropriate results: -```text +```c if (v_comm_ind) printf("empno(%d), ename(%s), sal(%.2f) comm(NULL)\n", v_empno, v_ename, v_sal); @@ -357,7 +357,7 @@ If the null indicator is `0` (that is, `false`), `v_comm` contains a meaningful The final statements in the code sample close the cursor `(employees)` and the connection to the server: -```text +```sql EXEC SQL CLOSE employees; EXEC SQL DISCONNECT; ``` diff --git a/product_docs/docs/epas/15/ecpgplus_guide/04_using_descriptors.mdx b/product_docs/docs/epas/15/ecpgplus_guide/04_using_descriptors.mdx index 462e1a64c0e..f0eecee0c10 100644 --- a/product_docs/docs/epas/15/ecpgplus_guide/04_using_descriptors.mdx +++ b/product_docs/docs/epas/15/ecpgplus_guide/04_using_descriptors.mdx @@ -58,7 +58,7 @@ When invoking the application, an end user must provide the name of the database For example, a user might invoke the sample with the following command: -```text +```c ./exec_stmt edb "SELECT * FROM emp" @@ -224,7 +224,7 @@ printf( "\n" ); The code sample begins by including the prototypes and type definitions for the C `stdio` and `stdlib` libraries, SQL data type symbols, and the `SQLCA` (SQL communications area) structure: -```text +```c #include #include #include @@ -233,19 +233,19 @@ The code sample begins by including the prototypes and type definitions for the The sample provides minimal error handling. When the application encounters a SQL error, it prints the error message to screen: -```text +```sql EXEC SQL WHENEVER SQLERROR SQLPRINT; ``` The application includes a forward-declaration for a function named `print_meta_data()` that prints the metadata found in a descriptor: -```text +```c static void print_meta_data( char * desc_name ); ``` The following code specifies the column header information that the application uses when printing the metadata: -```text +```c char *md1 = "col field data ret"; char *md2 = "num name type len"; char *md3 = "--- -------------------- ----------------- ---"; @@ -256,7 +256,7 @@ int main( int argc, char *argv[] ) The following declaration section identifies the host variables to contain the name of the database the application connects to, the content of the SQL statement, and a host variable for the number of columns in the result set (if any). -```text +```sql EXEC SQL BEGIN DECLARE SECTION; char *db = argv[1]; char *stmt = argv[2]; @@ -266,37 +266,37 @@ EXEC SQL END DECLARE SECTION; The application connects to the database using the default credentials: -```text +```sql EXEC SQL CONNECT TO :db; ``` Next, the application allocates a SQL descriptor to hold the metadata for a statement: -```text +```sql EXEC SQL ALLOCATE DESCRIPTOR parse_desc; ``` The application uses a `PREPARE` statement to check the syntax of the string provided by the user: -```text +```sql EXEC SQL PREPARE query FROM :stmt; ``` It also uses a `DESCRIBE` statement to move the metadata for the query into the SQL descriptor. -```text +```sql EXEC SQL DESCRIBE query INTO SQL DESCRIPTOR parse_desc; ``` Then, the application interrogates the descriptor to discover the number of columns in the result set and stores that in the host variable `col_count`. -```text +```sql EXEC SQL GET DESCRIPTOR parse_desc :col_count = COUNT; ``` If the column count is zero, the end user didn't enter a `SELECT` statement. The application uses an `EXECUTE IMMEDIATE` statement to process the contents of the statement: -```text +```c if( col_count == 0 ) { EXEC SQL EXECUTE IMMEDIATE :stmt; @@ -304,7 +304,7 @@ if( col_count == 0 ) If the statement executes successfully, the application performs a `COMMIT`: -```text +```c if( sqlca.sqlcode >= 0 ) EXEC SQL COMMIT; } @@ -314,26 +314,26 @@ else If the statement entered by the user is a `SELECT` statement (which we know because the column count is non-zero), the application declares a variable named `row`: -```text +```c int row; ``` Then, the application allocates another descriptor that holds the description and the values of a specific row in the result set: -```text +```sql EXEC SQL ALLOCATE DESCRIPTOR row_desc; ``` The application declares and opens a cursor for the prepared statement: -```text +```sql EXEC SQL DECLARE my_cursor CURSOR FOR query; EXEC SQL OPEN my_cursor; ``` It loops through the rows in the result set: -```text +```c for( row = 0; ; row++ ) { EXEC SQL BEGIN DECLARE SECTION; @@ -343,33 +343,33 @@ for( row = 0; ; row++ ) Then, it uses a `FETCH` to retrieve the next row from the cursor into the descriptor: -```text +```sql EXEC SQL FETCH IN my_cursor INTO SQL DESCRIPTOR row_desc; ``` The application confirms that the `FETCH` didn't fail. If the `FETCH` fails, the application reached the end of the result set and breaks the loop: -```text +```c if( sqlca.sqlcode != 0 ) break; ``` The application checks to see if this is the first row of the cursor. If it is, the application prints the metadata for the row: -```text +```c if( row == 0 ) print_meta_data( "row_desc" ); ``` Next, it prints a record header containing the row number: -```text +```c printf("[RECORD %d]\n", row+1); ``` Then, it loops through each column in the row: -```text +```c for( col = 1; col <= col_count; col++ ) { EXEC SQL BEGIN DECLARE SECTION; @@ -381,7 +381,7 @@ for( col = 1; col <= col_count; col++ ) The application interrogates the row descriptor `(row_desc)` to copy the column value `:val`, null indicator `:ind`, and column name `:name` into the host variables declared earlier. You can retrieve multiple items from a descriptor using a comma-separated list: -```text +```sql EXEC SQL GET DESCRIPTOR row_desc VALUE :col :val = DATA, :ind = INDICATOR, :name = NAME; @@ -389,7 +389,7 @@ EXEC SQL GET DESCRIPTOR row_desc If the null indicator (`ind`) is negative, the column value is `NULL`. If the null indicator is greater than `0`, the column value is too long to fit into the val host variable, so we print ``. Otherwise, the null indicator is `0`, meaning `NOT NULL`, so we print the value. In each case, we prefix the value (or `` or ``) with the name of the column. -```text +```c if( ind == -1 ) printf( " %-20s : \n", name.arr ); else if( ind > 0 ) @@ -404,7 +404,7 @@ printf( "\n" ); When the loop terminates, the application prints the number of rows fetched and exits: -```text +```c printf( "%d rows\n", row ); } @@ -414,14 +414,14 @@ exit( 0 ); The `print_meta_data()` function extracts the metadata from a descriptor and prints the name, data type, and length of each column: -```text +```c static void print_meta_data( char *desc_name ) { ``` The application declares host variables: -```text +```sql EXEC SQL BEGIN DECLARE SECTION; char *desc = desc_name; int col_count; @@ -431,7 +431,7 @@ EXEC SQL END DECLARE SECTION; The application then defines an array of character strings that map data type values (`numeric`) into data type names. We use the numeric value found in the descriptor to index into this array. For example, if we find that a given column is of type `2`, we can find the name of that type (`NUMERIC`) by writing `types[2]`. -```text +```c static char *types[] = { "unused ", @@ -457,13 +457,13 @@ static char *types[] = The application retrieves the column count from the descriptor. The program refers to the descriptor using a host variable (`desc`) that contains the name of the descriptor. In most scenarios, you use an identifier to refer to a descriptor. In this case, the caller provided the descriptor name, so we can use a host variable to refer to the descriptor. -```text +```sql EXEC SQL GET DESCRIPTOR :desc :col_count = count; ``` The application prints the column headers defined at the beginning of this application: -```text +```c printf( "%s\n", md1 ); printf( "%s\n", md2 ); printf( "%s\n", md3 ); @@ -471,7 +471,7 @@ printf( "%s\n", md3 ); Then, it loops through each column found in the descriptor and prints the name, type, and length of each column. -```text +```c for( col = 1; col <= col_count; col++ ) { EXEC SQL BEGIN DECLARE SECTION; @@ -484,7 +484,7 @@ for( col = 1; col <= col_count; col++ ) It retrieves the name, type code, and length of the current column: -```text +```sql EXEC SQL GET DESCRIPTOR :desc VALUE :col :name = NAME, @@ -494,7 +494,7 @@ EXEC SQL GET DESCRIPTOR :desc If the numeric type code matches a 'known' type code (that is, a type code found in the `types[]` array), it sets `type_name` to the name of the corresponding type. Otherwise, it sets `type_name` to `"unknown"`: -```text +```c if( type > 0 && type < SQL3_abstract ) type_name = types[type]; else @@ -503,7 +503,7 @@ else It then prints the column number, name, type name, and length: -```text +```c printf( "%02d: %-20s %-17s %04d\n", col, name.arr, type_name, ret_len ); } @@ -513,13 +513,14 @@ It then prints the column number, name, type name, and length: Invoke the sample application with the following command: -```text +```c ./exec_stmt test "SELECT * FROM emp WHERE empno IN(7902, 7934)" ``` The application returns: -```text +```sql +__OUTPUT__ col field                data              ret num name                 type              len --- -------------------- ----------------- --- diff --git a/product_docs/docs/epas/15/ecpgplus_guide/05_building_executing_dynamic_sql_statements.mdx b/product_docs/docs/epas/15/ecpgplus_guide/05_building_executing_dynamic_sql_statements.mdx index 6fc56e22adc..b08e69552e5 100644 --- a/product_docs/docs/epas/15/ecpgplus_guide/05_building_executing_dynamic_sql_statements.mdx +++ b/product_docs/docs/epas/15/ecpgplus_guide/05_building_executing_dynamic_sql_statements.mdx @@ -24,7 +24,7 @@ This example shows how to use the `EXECUTE IMMEDIATE` command to execute a SQL s The `EXECUTE IMMEDIATE` statement parses and plans the SQL statement each time it executes, which can have a negative impact on the performance of your application. If you plan to execute the same statement repeatedly, consider using the `PREPARE/EXECUTE` technique described in [Example: Executing a nonquery statement with a specified number of placeholders](#example-executing-a-nonquery-statement-with-a-specified-number-of-placeholders). -```text +```c /***********************************************************/ #include #include @@ -67,7 +67,7 @@ static void handle_error(void) The code sample begins by including the prototypes and type definitions for the C `stdio`, `string`, and `stdlib` libraries and providing basic infrastructure for the program: -```text +```c #include #include #include @@ -80,19 +80,19 @@ int main(int argc, char *argv[]) The example then sets up an error handler. ECPGPlus calls the `handle_error()` function whenever a SQL error occurs: -```text +```sql EXEC SQL WHENEVER SQLERROR DO handle_error(); ``` Then, the example connects to the database using the credentials specified on the command line: -```text +```sql EXEC SQL CONNECT :argv[1]; ``` Next, the program uses an `EXECUTE IMMEDIATE` statement to execute a SQL statement, adding a row to the `dept` table: -```text +```c insertStmt = "INSERT INTO dept VALUES(50, 'ACCTG', 'SEATTLE')"; EXEC SQL EXECUTE IMMEDIATE :insertStmt; @@ -100,7 +100,7 @@ EXEC SQL EXECUTE IMMEDIATE :insertStmt; If the `EXECUTE IMMEDIATE` command fails, ECPGPlus invokes the `handle_error()` function, which terminates the application after displaying an error message to the user. If the `EXECUTE IMMEDIATE` command succeeds, the application displays a message (`ok`) to the user, commits the changes, disconnects from the server, and terminates the application: -```text +```c fprintf(stderr, "ok\n"); EXEC SQL COMMIT RELEASE; @@ -111,7 +111,7 @@ If the `EXECUTE IMMEDIATE` command fails, ECPGPlus invokes the `handle_error()` ECPGPlus calls the `handle_error()` function whenever it encounters a SQL error. The `handle_error()` function prints the content of the error message, resets the error handler, rolls back any changes, disconnects from the database, and terminates the application: -```text +```c static void handle_error(void) { fprintf(stderr, "%s\n", sqlca.sqlerrm.sqlerrmc); @@ -131,7 +131,7 @@ When an application uses the `PREPARE/EXECUTE` mechanism, each SQL statement is ECPGPlus converts each parameter value to the type required by the SQL statement, if possible. Otherwise, ECPGPlus reports an error. -```text +```c /***********************************************************/ #include #include @@ -174,7 +174,7 @@ static void handle_error(void) The code sample begins by including the prototypes and type definitions for the C `stdio`, `string`, `stdlib`, and `sqlca` libraries and providing basic infrastructure for the program: -```text +```c #include #include #include @@ -189,19 +189,19 @@ int main(int argc, char *argv[]) The example then sets up an error handler. ECPGPlus calls the `handle_error()` function whenever a SQL error occurs. -```text +```sql EXEC SQL WHENEVER SQLERROR DO handle_error(); ``` Then, the example connects to the database using the credentials specified on the command line: -```text +```sql EXEC SQL CONNECT :argv[1]; ``` Next, the program uses a `PREPARE` statement to parse and plan a statement that includes three parameter markers. If the `PREPARE` statement succeeds, it creates a statement handle that you can use to execute the statement. (In this example, the statement handle is named `stmtHandle`.) You can execute a given statement multiple times using the same statement handle. -```text +```sql stmtText = "INSERT INTO dept VALUES(?, ?, ?)"; EXEC SQL PREPARE stmtHandle FROM :stmtText; @@ -209,13 +209,13 @@ EXEC SQL PREPARE stmtHandle FROM :stmtText; After parsing and planning the statement, the application uses the `EXECUTE` statement to execute the statement associated with the statement handle, substituting user-provided values for the parameter markers: -```text +```sql EXEC SQL EXECUTE stmtHandle USING :argv[2], :argv[3], :argv[4]; ``` If the `EXECUTE` command fails, ECPGPlus invokes the `handle_error()` function, which terminates the application after displaying an error message to the user. If the `EXECUTE` command succeeds, the application displays a message (`ok`) to the user, commits the changes, disconnects from the server, and terminates the application: -```text +```c fprintf(stderr, "ok\n"); EXEC SQL COMMIT RELEASE; @@ -226,7 +226,7 @@ If the `EXECUTE` command fails, ECPGPlus invokes the `handle_error()` function, ECPGPlus calls the `handle_error()` function whenever it encounters a SQL error. The `handle_error()` function prints the content of the error message, resets the error handler, rolls back any changes, disconnects from the database, and terminates the application: -```text +```c static void handle_error(void) { printf("%s\n", sqlca.sqlerrm.sqlerrmc); @@ -241,7 +241,7 @@ static void handle_error(void) This example shows how to execute a query with a known number of input parameters and with a known number of columns in the result set. This method uses the `PREPARE` statement to parse and plan a query and then opens a cursor and iterates through the result set. -```text +```c /***********************************************************/ #include #include @@ -299,7 +299,7 @@ static void handle_error(void) The code sample begins by including the prototypes and type definitions for the C `stdio`, `string`, `stdlib`, `stdbool`, and `sqlca` libraries and providing basic infrastructure for the program: -```text +```c #include #include #include @@ -316,26 +316,26 @@ int main(int argc, char *argv[]) The example then sets up an error handler. ECPGPlus calls the `handle_error()` function whenever a SQL error occurs: -```text +```sql EXEC SQL WHENEVER SQLERROR DO handle_error(); ``` Then, the example connects to the database using the credentials specified on the command line: -```text +```sql EXEC SQL CONNECT :argv[1]; ``` Next, the program uses a `PREPARE` statement to parse and plan a query that includes a single parameter marker. If the `PREPARE` statement succeeds, it creates a statement handle that you can use to execute the statement. (In this example, the statement handle is named `stmtHandle`.) You can execute a given statement multiple times using the same statement handle. -```text +```sql EXEC SQL PREPARE stmtHandle FROM "SELECT empno, ename FROM emp WHERE deptno = ?"; ``` The program then declares and opens the cursor `empCursor`, substituting a user-provided value for the parameter marker in the prepared `SELECT` statement. The `OPEN` statement includes a `USING` clause, which must provide a value for each placeholder found in the query: -```text +```sql EXEC SQL DECLARE empCursor CURSOR FOR stmtHandle; EXEC SQL OPEN empCursor USING :argv[2]; @@ -348,7 +348,7 @@ while(true) The program iterates through the cursor and prints the employee number and name of each employee in the selected department: -```text +```sql EXEC SQL FETCH empCursor INTO :empno, :ename; printf("%-10s %s\n", empno.arr, ename.arr); @@ -357,7 +357,7 @@ The program iterates through the cursor and prints the employee number and name The program then closes the cursor, commits any changes, disconnects from the server, and terminates the application: -```text +```sql EXEC SQL CLOSE empCursor; EXEC SQL COMMIT RELEASE; @@ -368,7 +368,7 @@ The program then closes the cursor, commits any changes, disconnects from the se The application calls the `handle_error()` function whenever it encounters a SQL error. The `handle_error()` function prints the content of the error message, resets the error handler, rolls back any changes, disconnects from the database, and terminates the application: -```text +```c static void handle_error(void) { printf("%s\n", sqlca.sqlerrm.sqlerrmc); @@ -386,7 +386,7 @@ static void handle_error(void) This example shows executing a query with an unknown number of input parameters or columns in the result set. This type of query might occur when you prompt the user for the text of the query or when a query is assembled from a form on which the user chooses from a number of conditions (i.e., a filter). -```text +```c /***********************************************************/ #include #include @@ -542,7 +542,7 @@ static void displayResultSet(void) The code sample begins by including the prototypes and type definitions for the C `stdio` and `stdlib` libraries. In addition, the program includes the `sqlda.h` and `sqlcpr.h` header files. `sqlda.h` defines the SQLDA structure used throughout this example. `sqlcpr.h` defines a small set of functions used to interrogate the metadata found in an SQLDA structure. -```text +```c #include #include #include @@ -551,21 +551,21 @@ The code sample begins by including the prototypes and type definitions for the Next, the program declares pointers to two SQLDA structures. The first SQLDA structure (`params`) is used to describe the metadata for any parameter markers found in the dynamic query text. The second SQLDA structure (`results`) contains both the metadata and the result set obtained by executing the dynamic query. -```text +```sql SQLDA *params; SQLDA *results; ``` The program then declares two helper functions, which are defined near the end of the code sample: -```text +```c static void bindParams(void); static void displayResultSet(void); ``` Next, the program declares three host variables. The first two (`username` and `password`) are used to connect to the database server. The third host variable (`stmtTxt`) is a NULL-terminated C string containing the text of the query to execute. The values for these three host variables are derived from the command-line arguments. When the program begins to execute, it sets up an error handler and then connects to the database server: -```text +```c int main(int argc, char *argv[]) { EXEC SQL BEGIN DECLARE SECTION; @@ -592,14 +592,14 @@ When you allocate an `SQLDA` descriptor, you specify the maximum number of colum See [SQLDA structure](07_reference/#sqlda_structure) for a complete description of the `SQLDA` structure. -```text +```c params = sqlald(20, 64, 64); results = sqlald(20, 64, 64); ``` After allocating the `SELECT`-list and bind descriptors, the program prepares the dynamic statement and declares a cursor over the result set. -```text +```sql EXEC SQL PREPARE stmt FROM :stmtText; EXEC SQL DECLARE dynCursor CURSOR FOR stmt; @@ -607,13 +607,13 @@ EXEC SQL DECLARE dynCursor CURSOR FOR stmt; Next, the program calls the `bindParams()` function. The `bindParams()` function examines the bind descriptor `(params)` and prompts the user for a value to substitute in place of each parameter marker found in the dynamic query. -```text +```c bindParams(); ``` Finally, the program opens the cursor (using any parameter values supplied by the user) and calls the `displayResultSet()` function to print the result set produced by the query: -```text +```sql EXEC SQL OPEN dynCursor USING DESCRIPTOR params; displayResultSet(); @@ -622,7 +622,7 @@ displayResultSet(); The `bindParams()` function determines whether the dynamic query contains any parameter markers. If so, it prompts the user for a value for each parameter and then binds that value to the corresponding marker. The `DESCRIBE BIND VARIABLE` statement populates the `params` SQLDA structure with information describing each parameter marker: -```text +```c static void bindParams(void) { EXEC SQL DESCRIBE BIND VARIABLES FOR stmt INTO params; @@ -630,7 +630,7 @@ static void bindParams(void) If the statement contains no parameter markers, `params->F` contains 0. If the statement contains more parameters than fit into the descriptor, `params->F` contains a negative number. In this case, the absolute value of `params->F` indicates the number of parameter markers found in the statement. If `params->F` contains a positive number, that number indicates how many parameter markers were found in the statement. -```text +```c if (params->F < 0) fprintf(stderr, "Too many parameters required\n"); else @@ -642,7 +642,7 @@ else Next, the program executes a loop that prompts the user for a value, iterating once for each parameter marker found in the statement: -```text +```c for (i = 0; i < params->F; i++) { char *paramName = params->S[i]; @@ -661,7 +661,7 @@ After prompting the user for a value for a given parameter, the program binds th - `params->L[i]` to the length of the value (we subtract one to trim off the trailing new-line character added by `fgets()`) - `params->V[i]` to point to a copy of the NULL-terminated string provided by the user -```text +```c params->T[i] = 1; /* Data type = Character (1) */ params->L[i] = strlen(paramValue) + 1; params->V[i] = strdup(paramValue); @@ -672,7 +672,7 @@ After prompting the user for a value for a given parameter, the program binds th The `displayResultSet()` function loops through each row in the result set and prints the value found in each column. `displayResultSet()` starts by executing a `DESCRIBE SELECT LIST` statement. This statement populates an SQLDA descriptor (`results`) with a description of each column in the result set. -```text +```c static void displayResultSet(void) { EXEC SQL DESCRIBE SELECT LIST FOR stmt INTO results; @@ -680,7 +680,7 @@ static void displayResultSet(void) If the dynamic statement returns no columns (that is, the dynamic statement is not a `SELECT` statement), `results->F` contains 0. If the statement returns more columns than fit into the descriptor, `results->F` contains a negative number. In this case, the absolute value of `results->F` indicates the number of columns returned by the statement. If `results->F` contains a positive number, that number indicates how many columns were returned by the query. -```text +```c if (results->F < 0) fprintf(stderr, "Too many columns returned by query\n"); else if (results->F == 0) @@ -694,7 +694,7 @@ else Next, the program enters a loop, iterating once for each column in the result set: -```text +```c for (col = 0; col < results->F; col++) { int null_permitted, length; @@ -702,7 +702,7 @@ for (col = 0; col < results->F; col++) To decode the type code found in `results->T`, the program invokes the `sqlnul()` function (see the description of the `T` member of the SQLDA structure in the [The SQLDA structure](07_reference/#sqlda_structure)). This call to `sqlnul()` modifies `results->T[col]` to contain only the type code (the nullability flag is copied to `null_permitted`). This step is needed because the `DESCRIBE SELECT LIST` statement encodes the type of each column and the nullability of each column into the `T` array. -```text +```c sqlnul(&results->T[col], &results->T[col], &null_permitted); @@ -712,7 +712,7 @@ After decoding the actual data type of the column, the program modifies the resu For numeric values (where `results->T[col] = 2`), the program calls the `sqlprc()` function to extract the precision and scale from the column length. To compute the number of bytes required to hold a numeric value in string form, `displayResultSet()` starts with the precision (that is, the maximum number of digits) and adds three bytes for a sign character, a decimal point, and a NULL terminator. -```text +```c switch (results->T[col]) { case 2: /* NUMERIC */ @@ -730,7 +730,7 @@ switch (results->T[col]) For date values, the program uses a hard-coded length of 30. In a real-world application, you might want to more carefully compute the amount of space required. -```text +```c case 12: /* DATE */ { length = 30; @@ -740,7 +740,7 @@ case 12: /* DATE */ For a value of any type other than date or numeric, `displayResultSet()` starts with the maximum column width reported by `DESCRIBE SELECT LIST` and adds one extra byte for the NULL terminator. Again, in a real-world application you might want to include more careful calculations for other data types: -```text +```c default: /* Others */ { length = results->L[col] + 1; @@ -755,7 +755,7 @@ After computing the amount of space required to hold a given column, the program - Sets `results->L[col]` to indicate the number of bytes found at `results->V[col]` - Sets the type code for the column `(results->T[col])` to `1` to instruct the upcoming `FETCH` statement to return the value in the form of a NULL-terminated string -```text +```c results->V[col] = malloc(length); results->L[col] = length; results->T[col] = 1; @@ -766,7 +766,7 @@ At this point, the results descriptor is configured such that a `FETCH` statemen Next, the program defines a new error handler to break out of the upcoming loop when the cursor is exhausted. -```text +```sql EXEC SQL WHENEVER NOT FOUND DO break; while (1) @@ -786,7 +786,7 @@ The `FETCH` statement populates the following members of the results descriptor: Finally, `displayResultSet()` iterates through each column in the result set, examines the corresponding NULL indicator, and prints the value. The result set isn't aligned. Instead, each value is separated from the previous value by a comma. -```text +```c for (col = 0; col < results->F; col++) { if (*results->I[col] == -1) diff --git a/product_docs/docs/epas/15/ecpgplus_guide/06_error_handling.mdx b/product_docs/docs/epas/15/ecpgplus_guide/06_error_handling.mdx index e174cd857a6..9ea2731bc6e 100644 --- a/product_docs/docs/epas/15/ecpgplus_guide/06_error_handling.mdx +++ b/product_docs/docs/epas/15/ecpgplus_guide/06_error_handling.mdx @@ -20,7 +20,7 @@ ECPGPlus provides two methods to detect and handle errors in embedded SQL code. `sqlca` has the following structure: -```text +```c struct { char sqlcaid[8]; @@ -41,7 +41,7 @@ struct Use the following directive to implement `sqlca` functionality: -```text +```sql EXEC SQL INCLUDE sqlca; ``` @@ -130,7 +130,7 @@ The following table lists the `sqlstate` and `sqlcode` values, as well as the sy Use the `EXEC SQL WHENEVER` directive to implement simple error handling for client applications compiled with ECPGPlus. The syntax of the directive is: -```text +```sql EXEC SQL WHENEVER ; ``` @@ -184,7 +184,7 @@ You can specify that the client application perform one of the following *action The following code fragment prints a message if the client application encounters a warning and aborts the application if it encounters an error: -```text +```sql EXEC SQL WHENEVER SQLWARNING SQLPRINT; EXEC SQL WHENEVER SQLERROR STOP; ``` diff --git a/product_docs/docs/epas/15/ecpgplus_guide/07_reference.mdx b/product_docs/docs/epas/15/ecpgplus_guide/07_reference.mdx index 2c01789f42c..c878e3f0ceb 100644 --- a/product_docs/docs/epas/15/ecpgplus_guide/07_reference.mdx +++ b/product_docs/docs/epas/15/ecpgplus_guide/07_reference.mdx @@ -93,7 +93,7 @@ In `PROC` mode, ECPGPlus allows you to: When you invoke ECPGPlus in `PROC` mode (by including the `-C PROC` keywords), the ECPG compiler honors the following C-preprocessor directives: -```text +```c #include #if expression #ifdef symbolName @@ -109,7 +109,7 @@ When you invoke ECPGPlus in `PROC` mode (by including the `-C PROC` keywords), t Preprocessor directives are used to affect or direct the code that's received by the compiler. For example, consider the following code sample: -```text +```c #if HAVE_LONG_LONG == 1 #define BALANCE_TYPE long long #else @@ -121,25 +121,25 @@ BALANCE_TYPE customerBalance; Suppose you invoke ECPGPlus with the following command-line arguments: -```text +```shell ecpg –C PROC –DHAVE_LONG_LONG=1 ``` ECPGPlus copies the entire fragment, without change, to the output file. It sends only the following tokens to the ECPG parser: -```text +```shell long long customerBalance; ``` On the other hand, suppose you invoke ECPGPlus with the following command-line arguments: -```text +```shell ecpg –C PROC –DHAVE_LONG_LONG=0 ``` The ECPG parser receives the following tokens: -```text +```shell double customerBalance; ``` @@ -147,7 +147,7 @@ If your code uses preprocessor directives to filter the code that's sent to the You can also use compatible syntax when executing the following preprocessor directives with an `EXEC` directive: -```text +```sql EXEC ORACLE DEFINE EXEC ORACLE UNDEF EXEC ORACLE INCLUDE @@ -161,7 +161,7 @@ EXEC ORACLE OPTION For example, suppose your code includes the following: -```text +```sql EXEC ORACLE IFDEF HAVE_LONG_LONG; #define BALANCE_TYPE long long EXEC ORACLE ENDIF; @@ -170,13 +170,13 @@ BALANCE_TYPE customerBalance; You invoke ECPGPlus with the following command-line arguments: -```text +```shell ecpg –C PROC DEFINE=HAVE_LONG_LONG=1 ``` ECPGPlus sends the following tokens to the output file and the ECPG parser: -```text +```c long long customerBalance; ``` @@ -187,7 +187,7 @@ long long customerBalance; When using ECPGPlus in compatible mode, you can use the `SELECT_ERROR` precompiler option to tell your program how to handle result sets that contain more rows than the host variable can accommodate. The syntax is: -```text +```ini SELECT_ERROR={YES|NO} ``` @@ -280,7 +280,7 @@ The following table contains the type codes for *internal* data types. An intern Oracle Dynamic SQL method 4 uses the SQLDA data structure to hold the data and metadata for a dynamic SQL statement. A SQLDA structure can describe a set of input parameters corresponding to the parameter markers found in the text of a dynamic statement or the result set of a dynamic statement. The layout of the SQLDA structure is: -```text +```c struct SQLDA { int N; /* Number of entries */ @@ -326,7 +326,7 @@ Your application must allocate the space required to hold each value. See [displ You can change any member of the `T` array before executing a `FETCH` statement to force ECPGPlus to convert the corresponding value to a specific data type. For example, if the `DESCRIBE SELECT LIST` statement indicates that a given column is of type `DATE`, you can change the corresponding `T` member to request that the next `FETCH` statement return that value in the form of a NULL-terminated string. Each member of the `T` array is a numeric type code (see [Type Codes](#type-codes) for a list of type codes). The type codes returned by a `DESCRIBE SELECT LIST` statement differ from those expected by a `FETCH` statement. After executing a `DESCRIBE SELECT LIST` statement, each member of `T` encodes a data type and a flag indicating whether the corresponding column is nullable. You can use the `sqlnul()` function to extract the type code and nullable flag from a member of the T array. The signature of the `sqlnul()` function is as follows: -``` +```c void sqlnul(unsigned short *valType, unsigned short *typeCode, int *isNull) @@ -334,7 +334,7 @@ void sqlnul(unsigned short *valType, For example, to find the type code and nullable flag for the third column of a descriptor named results, invoke `sqlnul()` as follows: -``` +```c sqlnul(&results->T[2], &typeCode, &isNull); ``` @@ -397,7 +397,7 @@ An embedded SQL statement allows your client application to interact with the se You can embed any EDB Postgres Advanced Server SQL statement in a C program. Each statement must begin with the keywords `EXEC SQL` and must be terminated with a semi-colon (;). In the C program, a SQL statement takes the form: -```text +```sql EXEC SQL ; ``` @@ -409,7 +409,7 @@ ECPGPlus extends the PostgreSQL server-side syntax for some statements. Syntax d Use the `ALLOCATE DESCRIPTOR` statement to allocate an SQL descriptor area: -```text +```sql EXEC SQL [FOR ] ALLOCATE DESCRIPTOR [WITH MAX ]; ``` @@ -422,7 +422,7 @@ Where: The following code fragment allocates a descriptor named `emp_query` that can be processed as an array `(emp_array)`: -```text +```sql EXEC SQL FOR :emp_array ALLOCATE DESCRIPTOR emp_query; ``` @@ -430,14 +430,14 @@ EXEC SQL FOR :emp_array ALLOCATE DESCRIPTOR emp_query; Use the `CALL` statement to invoke a procedure or function on the server. The `CALL` statement works only on EDB Postgres Advanced Server. The `CALL` statement comes in two forms. The first form is used to call a function: -```text +```sql EXEC SQL CALL '('[]')' INTO [[:][: ]]; ``` The second form is used to call a procedure: -```text +```sql EXEC SQL CALL '('[]')'; ``` @@ -450,7 +450,7 @@ Where: For example, the following statement invokes the `get_job_desc` function with the value contained in the `:ename` host variable and captures the value returned by that function in the `:job` host variable: -```text +```sql EXEC SQL CALL get_job_desc(:ename) INTO :job; ``` @@ -459,7 +459,7 @@ EXEC SQL CALL get_job_desc(:ename) Use the `CLOSE` statement to close a cursor and free any resources currently in use by the cursor. A client application can't fetch rows from a closed cursor. The syntax of the `CLOSE` statement is: -```text +```sql EXEC SQL CLOSE []; ``` @@ -469,7 +469,7 @@ The `OPEN` statement initializes a cursor. Once initialized, a cursor result set To manually close a cursor named `emp_cursor`, use the command: -```text +```sql EXEC SQL CLOSE emp_cursor; ``` @@ -479,7 +479,7 @@ A cursor is automatically closed when an application terminates. Use the `COMMIT` statement to complete the current transaction, making all changes permanent and visible to other users. The syntax is: -```text +```sql EXEC SQL [AT ] COMMIT [WORK] [COMMENT <'text'>] [COMMENT <'text'> RELEASE]; ``` @@ -492,17 +492,19 @@ Include the `RELEASE` clause to close the current connection after performing th For example, the following command commits all work performed on the `dept` database and closes the current connection: -```text +```sql EXEC SQL AT dept COMMIT RELEASE; ``` By default, statements are committed only when a client application performs a `COMMIT` statement. Include the `-t` option when invoking ECPGPlus to specify for a client application to invoke `AUTOCOMMIT` functionality. You can also control `AUTOCOMMIT` functionality in a client application with the following statements: -```text +```sql EXEC SQL SET AUTOCOMMIT TO ON ``` -```text +and + +```sql EXEC SQL SET AUTOCOMMIT TO OFF ``` @@ -512,7 +514,7 @@ Use the `CONNECT` statement to establish a connection to a database. The `CONNEC The first form is compatible with Oracle databases: -```text +```sql EXEC SQL CONNECT {{: IDENTIFIED BY :} | :} [AT ] @@ -540,20 +542,20 @@ EXEC SQL CONNECT :user IDENTIFIED BY :password; A client application can also use the first form of the `CONNECT` statement to establish a connection using a single host variable named `:connection_id`. In the following example, `connection_id` contains the slash-delimited role name and associated password for the user: -```text +```sql EXEC SQL CONNECT :connection_id; ``` The syntax of the second form of the `CONNECT` statement is: -```text +```sql EXEC SQL CONNECT TO [AS ] []; ``` Where `credentials` is one of the following: -```text +```sql USER user_name password USER user_name IDENTIFIED BY password USER user_name USING password @@ -590,7 +592,7 @@ Where: The following code fragment uses the second form of the `CONNECT` statement to establish a connection to a database named `edb` using the role `alice` and the password associated with that role, `1safepwd`: -```text +```sql EXEC SQL CONNECT TO edb AS acctg_conn USER 'alice' IDENTIFIED BY '1safepwd'; ``` @@ -601,7 +603,7 @@ The name of the connection is `acctg_conn`. You can use the connection name when Use the `DEALLOCATE DESCRIPTOR` statement to free memory in use by an allocated descriptor. The syntax of the statement is: -```text +```sql EXEC SQL DEALLOCATE DESCRIPTOR ``` @@ -609,7 +611,7 @@ Where `descriptor_name` is the name of the descriptor. This value can take the f The following example deallocates a descriptor named `emp_query`: -```text +```sql EXEC SQL DEALLOCATE DESCRIPTOR emp_query; ``` @@ -617,7 +619,7 @@ EXEC SQL DEALLOCATE DESCRIPTOR emp_query; Use the `DECLARE CURSOR` statement to define a cursor. The syntax of the statement is: -```text +```sql EXEC SQL [AT ] DECLARE CURSOR FOR ( | ); ``` @@ -631,7 +633,7 @@ Where: The following example declares a cursor named `employees`: -```text +```sql EXEC SQL DECLARE employees CURSOR FOR SELECT empno, ename, sal, comm @@ -645,7 +647,7 @@ The cursor generates a result set that contains the employee number, employee na Use the `DECLARE DATABASE` statement to declare a database identifier for use in subsequent SQL statements (for example, in a `CONNECT` statement). The syntax is: -```text +```sql EXEC SQL DECLARE DATABASE; ``` @@ -653,7 +655,7 @@ Where `database_name` specifies the name of the database. The following example shows declaring an identifier for the `acctg` database: -```text +```sql EXEC SQL DECLARE acctg DATABASE; ``` @@ -665,11 +667,13 @@ This statement has no effect and is provided for Pro\*C compatibility only. Use the `DECLARE STATEMENT` directive to declare an identifier for an SQL statement. EDB Postgres Advanced Server supports two versions of the `DECLARE STATEMENT` directive: -```text +```sql EXEC SQL [] DECLARE STATEMENT; ``` -```text +and + +```sql EXEC SQL DECLARE STATEMENT ; ``` @@ -680,7 +684,7 @@ Where: A typical usage sequence that includes the `DECLARE STATEMENT` directive is: -```text +```sql EXEC SQL DECLARE give_raise STATEMENT; // give_raise is now a statement handle (not prepared) EXEC SQL PREPARE give_raise FROM :stmtText; // give_raise is now associated @@ -694,7 +698,7 @@ This statement has no effect and is provided for Pro\*C compatibility only. Use the `DELETE` statement to delete one or more rows from a table. The syntax for the ECPGPlus `DELETE` statement is the same as the syntax for the SQL statement, but you can use parameter markers and host variables any place that an expression is allowed. The syntax is: -```text +```sql [FOR ] DELETE FROM [ONLY]
[[AS] ] [USING ] [WHERE | WHERE CURRENT OF ] @@ -717,7 +721,7 @@ The `RETURN/RETURNING` clause specifies an `output_expression` or `host_variable For example, the following statement deletes all rows from the `emp` table, where the `sal` column contains a value greater than the value specified in the host variable, `:max_sal:` -```text +```sql DELETE FROM emp WHERE sal > :max_sal; ``` @@ -729,12 +733,12 @@ Use the `DESCRIBE` statement to find the number of input values required by a pr The `DESCRIBE` statement populates an `SQLDA` descriptor. To populate a SQL descriptor, use the `ALLOCATE DESCRIPTOR` and `DESCRIBE...DESCRIPTOR` statements. -```text +```sql EXEC SQL DESCRIBE BIND VARIABLES FOR INTO ; ``` -```text +```sql EXEC SQL DESCRIBE SELECT LIST FOR INTO ; ``` @@ -745,21 +749,21 @@ Where: When you execute the first form of the `DESCRIBE` statement, ECPG populates the given descriptor with a description of each input variable *required* by the statement. For example, given two descriptors: -```text +```sql SQLDA *query_values_in; SQLDA *query_values_out; ``` You might prepare a query that returns information from the `emp` table: -```text +```sql EXEC SQL PREPARE get_emp FROM "SELECT ename, empno, sal FROM emp WHERE empno = ?"; ``` The command requires one input variable for the parameter marker (?). -```text +```sql EXEC SQL DESCRIBE BIND VARIABLES FOR get_emp INTO query_values_in; ``` @@ -768,7 +772,7 @@ After describing the bind variables for this statement, you can examine the desc When you execute the second form, ECPG populates the given descriptor with a description of each value returned by the statement. For example, the following statement returns three values: -```text +```sql EXEC SQL DESCRIBE SELECT LIST FOR get_emp INTO query_values_out; ``` @@ -783,7 +787,7 @@ This is alternative Pro\*C-compatible syntax for the `DESCRIBE DESCRIPTOR` state Use the `DESCRIBE DESCRIPTOR` statement to retrieve information about a SQL statement and store that information in a SQL descriptor. Before using `DESCRIBE DESCRIPTOR`, you must allocate the descriptor with the `ALLOCATE DESCRIPTOR` statement. The syntax is: -```text +```sql EXEC SQL DESCRIBE [INPUT | OUTPUT] USING [SQL] DESCRIPTOR ; ``` @@ -797,21 +801,21 @@ If you include the `INPUT` clause, ECPGPlus populates the given descriptor with For example, given two descriptors: -```text +```sql EXEC SQL ALLOCATE DESCRIPTOR query_values_in; EXEC SQL ALLOCATE DESCRIPTOR query_values_out; ``` You might prepare a query that returns information from the `emp` table: -```text +```sql EXEC SQL PREPARE get_emp FROM "SELECT ename, empno, sal FROM emp WHERE empno = ?"; ``` The command requires one input variable for the parameter marker (?). -```text +```sql EXEC SQL DESCRIBE INPUT get_emp USING 'query_values_in'; ``` @@ -823,7 +827,7 @@ If you include the `OUTPUT` clause, ECPGPlus populates the given descriptor with For example, the following statement returns three values: -```text +```sql EXEC SQL DESCRIBE OUTPUT FOR get_emp USING 'query_values_out'; ``` @@ -833,7 +837,7 @@ After describing the select list for this statement, you can examine the descrip Use the `DISCONNECT` statement to close the connection to the server. The syntax is: -```text +```sql EXEC SQL DISCONNECT [][CURRENT][DEFAULT][ALL]; ``` @@ -847,7 +851,7 @@ Include the `ALL` keyword to close all active connections. The following example creates a connection named `hr_connection` that connects to the `hr` database and then disconnects from the connection: -```text +```c /* client.pgc*/ int main() { @@ -861,7 +865,7 @@ int main() Use the `EXECUTE` statement to execute a statement previously prepared using an `EXEC SQL PREPARE` statement. The syntax is: -```text +```sql EXEC SQL [FOR ] EXECUTE [USING {DESCRIPTOR |: [[INDICATOR] :]}]; @@ -879,14 +883,14 @@ Include the `USING` clause to supply values for parameters in the prepared state The following example creates a prepared statement that inserts a record into the `emp` table: -```text +```sql EXEC SQL PREPARE add_emp (numeric, text, text, numeric) AS INSERT INTO emp VALUES($1, $2, $3, $4); ``` Each time you invoke the prepared statement, provide fresh parameter values for the statement: -```text +```sql EXEC SQL EXECUTE add_emp USING 8000, 'DAWSON', 'CLERK', 7788; EXEC SQL EXECUTE add_emp USING 8001, 'EDWARDS', 'ANALYST', 7698; ``` @@ -895,7 +899,7 @@ EXEC SQL EXECUTE add_emp USING 8001, 'EDWARDS', 'ANALYST', 7698; Use the `EXECUTE` statement to execute a statement previously prepared by an `EXEC SQL PREPARE` statement, using an SQL descriptor. The syntax is: -```text +```sql EXEC SQL [FOR ] EXECUTE [USING [SQL] DESCRIPTOR ] [INTO [SQL] DESCRIPTOR ]; @@ -913,7 +917,7 @@ Include the `INTO` clause to specify a descriptor into which the `EXECUTE` state The following example executes the prepared statement, `give_raise`, using the values contained in the descriptor `stmtText:` -```text +```sql EXEC SQL PREPARE give_raise FROM :stmtText; EXEC SQL EXECUTE give_raise USING DESCRIPTOR :stmtText; ``` @@ -922,7 +926,7 @@ EXEC SQL EXECUTE give_raise USING DESCRIPTOR :stmtText; Use the `EXECUTE…END-EXEC` statement to embed an anonymous block into a client application. The syntax is: -```text +```sql EXEC SQL [AT ] EXECUTE END-EXEC; ``` @@ -933,7 +937,7 @@ Where: The following example executes an anonymous block: -```text +```sql EXEC SQL EXECUTE BEGIN IF (current_user = :admin_user_name) THEN @@ -949,7 +953,7 @@ END-EXEC; Use the `EXECUTE IMMEDIATE` statement to execute a string that contains a SQL command. The syntax is: -```text +```sql EXEC SQL [AT ] EXECUTE IMMEDIATE ; ``` @@ -964,7 +968,7 @@ The statement text can't contain references to host variables. If the statement The following example executes the command contained in the `:command_text` host variable: -```text +```sql EXEC SQL EXECUTE IMMEDIATE :command_text; ``` @@ -972,7 +976,7 @@ EXEC SQL EXECUTE IMMEDIATE :command_text; Use the `FETCH` statement to return rows from a cursor into an SQLDA descriptor or a target list of host variables. Before using a `FETCH` statement to retrieve information from a cursor, you must prepare the cursor using `DECLARE` and `OPEN` statements. The statement syntax is: -```text +```sql EXEC SQL [FOR ] FETCH { USING DESCRIPTOR }|{ INTO }; ``` @@ -988,7 +992,7 @@ If you include an `INTO` clause, the `FETCH` statement populates the host variab The following code fragment declares a cursor named `employees` that retrieves the `employee number`, `name`, and `salary` from the `emp` table: -```text +```sql EXEC SQL DECLARE employees CURSOR FOR SELECT empno, ename, esal FROM emp; EXEC SQL OPEN emp_cursor; @@ -999,7 +1003,7 @@ EXEC SQL FETCH emp_cursor INTO :emp_no, :emp_name, :emp_sal; Use the `FETCH DESCRIPTOR` statement to retrieve rows from a cursor into an SQL descriptor. The syntax is: -```text +```sql EXEC SQL [FOR ] FETCH INTO [SQL] DESCRIPTOR ; ``` @@ -1014,7 +1018,7 @@ Include the `INTO` clause to specify a SQL descriptor into which the `EXECUTE` s The following example allocates a descriptor named `row_desc` that holds the description and the values of a specific row in the result set. It then declares and opens a cursor for a prepared statement (`my_cursor`), before looping through the rows in result set, using a `FETCH` to retrieve the next row from the cursor into the descriptor: -```text +```sql EXEC SQL ALLOCATE DESCRIPTOR 'row_desc'; EXEC SQL DECLARE my_cursor CURSOR FOR query; EXEC SQL OPEN my_cursor; @@ -1031,14 +1035,14 @@ EXEC SQL FETCH my_cursor INTO SQL DESCRIPTOR 'row_desc'; Use the `GET DESCRIPTOR` statement to retrieve information from a descriptor. The `GET DESCRIPTOR` statement comes in two forms. The first form returns the number of values (or columns) in the descriptor. -```text +```sql EXEC SQL GET DESCRIPTOR : = COUNT; ``` The second form returns information about a specific value (specified by the `VALUE column_number` clause): -```text +```sql EXEC SQL [FOR ] GET DESCRIPTOR VALUE {: = {,…}}; ``` @@ -1070,7 +1074,7 @@ ECPGPlus implements the following `descriptor_item` types: The following code fragment shows using a `GET DESCRIPTOR` statement to obtain the number of columns entered in a user-provided string: -```text +```sql EXEC SQL ALLOCATE DESCRIPTOR parse_desc; EXEC SQL PREPARE query FROM :stmt; EXEC SQL DESCRIBE query INTO SQL DESCRIPTOR parse_desc; @@ -1083,7 +1087,7 @@ The example allocates an SQL descriptor named `parse_desc` before using a `PREPA Use the `INSERT` statement to add one or more rows to a table. The syntax for the ECPGPlus `INSERT` statement is the same as the syntax for the SQL statement, but you can use parameter markers and host variables any place that a value is allowed. The syntax is: -```text +```sql [FOR ] INSERT INTO
[( [, ...])] {DEFAULT VALUES | VALUES ({ | DEFAULT} [, ...])[, ...] | } @@ -1101,7 +1105,7 @@ Include the `FOR exec_count` clause to specify the number of times the statement The following example adds a row to the `employees` table: -```text +```sql INSERT INTO emp (empno, ename, job, hiredate) VALUES ('8400', :ename, 'CLERK', '2011-10-31'); ``` @@ -1115,17 +1119,19 @@ For more information about using the `INSERT` statement, see the [PostgreSQL cor Use the `OPEN` statement to open a cursor. The syntax is: -```text +```sql EXEC SQL [FOR ] OPEN [USING ]; ``` `parameters` is one of the following: -```text +```sql DESCRIPTOR ``` -```text +or + +```sql [ [ INDICATOR ] , … ] ``` @@ -1139,7 +1145,7 @@ The `OPEN` statement initializes a cursor using the values provided in `paramete The following example declares a cursor named `employees` that queries the `emp` table. It returns the `employee number`, `name`, `salary`, and `commission` of an employee whose name matches a user-supplied value stored in the host variable `:emp_name`. -```text +```sql EXEC SQL DECLARE employees CURSOR FOR SELECT empno, ename, sal, comm  @@ -1156,7 +1162,7 @@ After declaring the cursor, the example uses an `OPEN` statement to make the con Use the `OPEN DESCRIPTOR` statement to open a cursor with a SQL descriptor. The syntax is: -```text +```sql EXEC SQL [FOR ] OPEN [USING [SQL] DESCRIPTOR ] [INTO [SQL] DESCRIPTOR ]; @@ -1170,7 +1176,7 @@ Where: For example, the following statement opens a cursor named `emp_cursor` using the host variable `:employees`: -```text +```sql EXEC SQL OPEN emp_cursor USING DESCRIPTOR :employees; ``` @@ -1180,14 +1186,14 @@ Prepared statements are useful when a client application must perform a task mul Use the `PREPARE` statement to prepare a SQL statement or PL/pgSQL block for execution. The statement is available in two forms. The first form is: -```text +```sql EXEC SQL [AT ] PREPARE FROM ; ``` The second form is: -```text +```sql EXEC SQL [AT ] PREPARE AS ; ``` @@ -1202,14 +1208,14 @@ To include variables in a prepared statement, substitute placeholders (`$1, $2, The following example creates a prepared statement named `add_emp` that inserts a record into the `emp` table: -```text +```sql EXEC SQL PREPARE add_emp (int, text, text, numeric) AS INSERT INTO emp VALUES($1, $2, $3, $4); ``` Each time you invoke the statement, provide fresh parameter values for the statement: -```text +```sql EXEC SQL EXECUTE add_emp(8003, 'Davis', 'CLERK', 2000.00); EXEC SQL EXECUTE add_emp(8004, 'Myer', 'CLERK', 2000.00); ``` @@ -1221,7 +1227,7 @@ EXEC SQL EXECUTE add_emp(8004, 'Myer', 'CLERK', 2000.00); Use the `ROLLBACK` statement to abort the current transaction and discard any updates made by the transaction. The syntax is: -```text +```sql EXEC SQL [AT ] ROLLBACK [WORK] [ { TO [SAVEPOINT] } | RELEASE ] ``` @@ -1234,13 +1240,13 @@ Include the `RELEASE` clause to cause the application to execute an `EXEC SQL CO Use the following statement to roll back a complete transaction: -```text +```sql EXEC SQL ROLLBACK; ``` Invoking this statement aborts the transaction, undoing all changes, erasing any savepoints, and releasing all transaction locks. Suppose you include a savepoint (`my_savepoint` in the following example): -```text +```sql EXEC SQL ROLLBACK TO SAVEPOINT my_savepoint; ``` @@ -1252,7 +1258,7 @@ Rolling back to a specified savepoint releases all locks acquired after the save Use the `SAVEPOINT` statement to define a *savepoint*. A savepoint is a marker in a transaction. You can use a `ROLLBACK` statement to abort the current transaction, returning the state of the server to its condition prior to the specified savepoint. The syntax of a `SAVEPOINT` statement is: -```text +```sql EXEC SQL [AT ] SAVEPOINT ``` @@ -1265,7 +1271,7 @@ You can establish savepoints only in a transaction block. A transaction block ca To create a savepoint named `my_savepoint`, include the statement: -```text +```sql EXEC SQL SAVEPOINT my_savepoint; ``` @@ -1273,7 +1279,7 @@ EXEC SQL SAVEPOINT my_savepoint; ECPGPlus extends support of the `SQL SELECT` statement by providing the `INTO host_variables` clause. The clause allows you to select specified information from an EDB Postgres Advanced Server database into a host variable. The syntax for the `SELECT` statement is: -```text +```sql EXEC SQL [AT ] SELECT [ ] @@ -1302,7 +1308,7 @@ ECPGPlus provides support for the additional clauses of the SQL `SELECT` stateme To use the `INTO host_variables` clause, include the names of defined host variables when specifying the `SELECT` statement. For example, the following `SELECT` statement populates the `:emp_name` and `:emp_sal` host variables with a list of employee names and salaries: -```text +```sql EXEC SQL SELECT ename, sal INTO :emp_name, :emp_sal FROM emp @@ -1311,7 +1317,7 @@ EXEC SQL SELECT ename, sal The enhanced `SELECT` statement also allows you to include parameter markers (question marks) in any clause where a value is allowed. For example, the following query contains a parameter marker in the `WHERE` clause: -```text +```sql SELECT * FROM emp WHERE dept_no = ?; ``` @@ -1327,7 +1333,7 @@ There are at least three reasons you might need more than one connection in a gi The syntax for the `SET CONNECTION` statement is: -```text +```sql EXEC SQL SET CONNECTION ; ``` @@ -1337,38 +1343,38 @@ To use the `SET CONNECTION` statement, open the connection to the database using By default, the current thread uses the current connection. Use the `SET CONNECTION` statement to specify a default connection for the current thread to use. The default connection is used only when you execute an `EXEC SQL` statement that doesn't explicitly specify a connection name. For example, the following statement uses the default connection because it doesn't include an `AT connection_name` clause: -```text +```sql EXEC SQL DELETE FROM emp; ``` This statement doesn't use the default connection because it specifies a connection name using the `AT connection_name` clause: -```text +```sql EXEC SQL AT acctg_conn DELETE FROM emp; ``` For example, suppose a client application creates and maintains multiple connections using either of the following approaches: -```text +```sql EXEC SQL CONNECT TO edb AS acctg_conn USER 'alice' IDENTIFIED BY 'acctpwd'; ``` -```text +```sql EXEC SQL CONNECT TO edb AS hr_conn USER 'bob' IDENTIFIED BY 'hrpwd'; ``` It can change between the connections with the `SET CONNECTION` statement: -```text +```sql SET CONNECTION acctg_conn; ``` or -```text +```sql SET CONNECTION hr_conn; ``` @@ -1378,14 +1384,14 @@ The server uses the privileges associated with the connection when determining t Use the `SET DESCRIPTOR` statement to assign a value to a descriptor area using information provided by the client application in the form of a host variable or an integer value. The statement comes in two forms. The first form is: -```text +```sql EXEC SQL [FOR ] SET DESCRIPTOR VALUE = ; ``` The second form is: -```text +```sql EXEC SQL [FOR ] SET DESCRIPTOR COUNT = integer; ``` @@ -1411,13 +1417,13 @@ ECPGPlus implements the following `descriptor_item` types: For example, a client application might prompt a user for a dynamically created query: -```text +```c query_text = promptUser("Enter a query"); ``` To execute a dynamically created query, you must first prepare the query (parsing and validating the syntax of the query) and then describe the input parameters found in the query using the `EXEC SQL DESCRIBE INPUT` statement. -```text +```sql EXEC SQL ALLOCATE DESCRIPTOR query_params; EXEC SQL PREPARE emp_query FROM :query_text; @@ -1429,7 +1435,7 @@ After describing the query, the `query_params` descriptor contains information a For this example, assume that the user entered: -```text +```sql SELECT ename FROM emp WHERE sal > ? AND job = ?;, ``` @@ -1437,7 +1443,7 @@ In this case, the descriptor describes two parameters, one for `sal > ?` and one To discover the number of parameter markers (question marks) in the query and therefore the number of values you must provide before executing the query, use: -```text +```sql EXEC SQL GET DESCRIPTOR … :host_variable = COUNT; ``` @@ -1447,7 +1453,7 @@ The data type of the first parameter is `numeric`. The type of the second parame Next, loop through each parameter, prompting the user for a value, and store those values in host variables. You can use `GET DESCRIPTOR … COUNT` to find the number of parameters in the query. -```text +```sql EXEC SQL GET DESCRIPTOR 'query_params' :param_count = COUNT; @@ -1459,7 +1465,7 @@ for(param_number = 1; Use `GET DESCRIPTOR` to copy the name of the parameter into the `param_name` host variable: -```text +```sql EXEC SQL GET DESCRIPTOR 'query_params' VALUE :param_number :param_name = NAME; @@ -1472,7 +1478,7 @@ else To associate a `value` with each parameter, you use the `EXEC SQL SET DESCRIPTOR` statement. For example: -```text +```sql EXEC SQL SET DESCRIPTOR 'query_params' VALUE :param_number DATA = :reply; EXEC SQL SET DESCRIPTOR 'query_params' @@ -1486,7 +1492,7 @@ Now, you can use the `EXEC SQL EXECUTE DESCRIPTOR` statement to execute the prep Use an `UPDATE` statement to modify the data stored in a table. The syntax is: -```text +```sql EXEC SQL [AT ][FOR ] UPDATE [ ONLY ] table [ [ AS ] alias ] SET {column = { expression | DEFAULT } | @@ -1506,7 +1512,7 @@ You can use a host variable in any clause that specifies a value. To use a host The following `UPDATE` statement changes the job description of an employee (identified by the `:ename` host variable) to the value contained in the `:new_job` host variable. It increases the employees salary by multiplying the current salary by the value in the `:increase` host variable: -```text +```sql EXEC SQL UPDATE emp SET job = :new_job, sal = sal * :increase WHERE ename = :ename; @@ -1514,7 +1520,7 @@ EXEC SQL UPDATE emp The enhanced `UPDATE` statement also allows you to include parameter markers (question marks) in any clause where an input value is permitted. For example, we can write the same update statement with a parameter marker in the `WHERE` clause: -```text +```sql EXEC SQL UPDATE emp SET job = ?, sal = sal * ? WHERE ename = :ename; @@ -1526,7 +1532,7 @@ This `UPDATE` statement allows you to prompt the user for a new value for the `j Use the `WHENEVER` statement to specify the action taken by a client application when it encounters an SQL error or warning. The syntax is: -```text +```sql EXEC SQL WHENEVER ; ``` @@ -1553,19 +1559,19 @@ The following table describes the actions that result from a client encountering The following code fragment prints a message if the client application encounters a warning and aborts the application if it encounters an error: -```text +```sql EXEC SQL WHENEVER SQLWARNING SQLPRINT; EXEC SQL WHENEVER SQLERROR STOP; ``` Include the following code to specify for a client to continue processing after warning a user of a problem: -```text +```sql EXEC SQL WHENEVER SQLWARNING SQLPRINT; ``` Include the following code to call a function if a query returns no rows or when a cursor reaches the end of a result set: -```text +```sql EXEC SQL WHENEVER NOT FOUND CALL error_handler(__LINE__); ``` diff --git a/product_docs/docs/epas/15/edb_pgadmin_linux_qs/index.mdx b/product_docs/docs/epas/15/edb_pgadmin_linux_qs/index.mdx index ce13a71f459..01b024e8239 100644 --- a/product_docs/docs/epas/15/edb_pgadmin_linux_qs/index.mdx +++ b/product_docs/docs/epas/15/edb_pgadmin_linux_qs/index.mdx @@ -21,13 +21,13 @@ To create a repository configuration file, you need the credentials that allow a To create the repository configuration file, assume superuser privileges and invoke the following command: -```text +```shell yum -y install https://yum.enterprisedb.com/edb-repo-rpms/edb-repo-latest.noarch.rpm ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d.` After creating the `edb.repo` file, use the following command to replace the `USERNAME` and `PASSWORD` placeholders in the baseurl specification with the username and password of a registered EDB user: -```text +```shell sed -i "s@:@USERNAME:PASSWORD@" /etc/yum.repos.d/edb.repo ``` @@ -35,7 +35,7 @@ sed -i "s@:@USERNAME:PASSWORD@" /etc/yum.repos.d/edb.repo For CentOS 7.x, use the following command: -```text +```shell yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm ``` @@ -46,7 +46,7 @@ yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarc After creating the repository configuration file and adding a username and password to the `edb.repo` file, you can install `edb-pgadmin4`. To install `edb-pgadmin4`, assume superuser privileges and invoke the following command: -```text +```shell yum install edb-pgadmin4* ``` @@ -63,7 +63,7 @@ This command installs following packages: Use the following command to start pgAdmin 4 in desktop mode: -```text +```shell /usr/edb/pgadmin4/bin/pgAdmin4 ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01_package_components.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01_package_components.mdx index 0c95a365307..bf3ded91f27 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01_package_components.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01_package_components.mdx @@ -19,7 +19,7 @@ The package specification defines the user interface for a package (the API). Th The syntax used to define the interface for a package is: -```text +```sql CREATE [ OR REPLACE ] PACKAGE [ ] { IS | AS } @@ -30,7 +30,7 @@ END [ ] ; Where `authorization_clause` := -```text +```sql { AUTHID DEFINER } | { AUTHID CURRENT_USER } ``` @@ -42,14 +42,14 @@ procedure_declaration | function_declaration Where `procedure_declaration` := -```text +```sql PROCEDURE proc_name [ argument_list ]; [ restriction_pragma; ] ``` Where `function_declaration` := -```text +```sql FUNCTION func_name [ argument_list ] RETURN rettype [ DETERMINISTIC ]; [ restriction_pragma; ] @@ -69,7 +69,7 @@ argname [ IN | IN OUT | OUT ] argtype [ DEFAULT value ] Where `restriction_pragma` := -```text +```sql PRAGMA RESTRICT_REFERENCES(name, restrictions) ``` @@ -159,7 +159,7 @@ restriction [, ... ] Package implementation details reside in the package body. The package body can contain objects that aren't visible to the package user. EDB Postgres Advanced Server supports the following syntax for the package body: -```text +```sql CREATE [ OR REPLACE ] PACKAGE BODY { IS | AS } [ ; ] ... @@ -176,7 +176,7 @@ procedure_definition | function_definition Where `procedure_definition` := -```text +```sql PROCEDURE proc_name[ argument_list ] [ options_list ] { IS | AS } @@ -186,7 +186,7 @@ PROCEDURE proc_name[ argument_list ] Where `procedure_body` := -```text +```sql [ PRAGMA AUTONOMOUS_TRANSACTION; ] [ declaration; ] [, ...] BEGIN @@ -199,7 +199,7 @@ BEGIN Where `function_definition` := -```text +```sql FUNCTION func_name [ argument_list ] RETURN rettype [ DETERMINISTIC ] [ options_list ] @@ -210,7 +210,7 @@ FUNCTION func_name [ argument_list ] Where `function_body` := -```text +```sql [ PRAGMA AUTONOMOUS_TRANSACTION; ] [ declaration; ] [, ...] BEGIN @@ -241,7 +241,7 @@ option [ ... ] Where `option` := -```text +```sql STRICT LEAKPROOF PARALLEL { UNSAFE | RESTRICTED | SAFE } @@ -252,7 +252,7 @@ SET config_param { TO value | = value | FROM CURRENT } Where `package_initializer` := -```text +```sql BEGIN statement; [...] END; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx index 8c2ab1000c6..4ebc4bee214 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx @@ -6,7 +6,7 @@ From version 15 onwards, you can view the package specification and package body **Synopsis** -``` text +```sql \sps[+] []. \spb[+] []. ``` @@ -15,7 +15,7 @@ From version 15 onwards, you can view the package specification and package body Create a package and a package body `test_pkg` in the `public` schema: -``` text +```sql edb=# CREATE OR REPLACE PACKAGE public.test_pkg IS edb$# emp_name character varying(10); edb$# PROCEDURE get_name(IN p_empno numeric); @@ -46,7 +46,7 @@ edb=# Use `\sps` and `\spb` commands to view the definition of package and package body: -``` text +``` sql edb=# \sps test_pkg CREATE OR REPLACE PACKAGE public.test_pkg IS emp_name character varying(10); @@ -102,7 +102,7 @@ You can also view the definition of individual functions and procedures using `\ Create the following function and procedure: -``` text +```sql edb=# CREATE OR REPLACE FUNCTION public.func1() edb-# RETURNS integer edb-# LANGUAGE edbspl @@ -120,7 +120,7 @@ edb=# Use `\sf ` command to view the definition: -``` text +```sql edb=# \sf func1 CREATE OR REPLACE FUNCTION public.func1() RETURNS integer diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/02_creating_packages.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/02_creating_packages.mdx index 80f914567fa..66127d88219 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/02_creating_packages.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/02_creating_packages.mdx @@ -12,7 +12,7 @@ A package isn't an executable piece of code but a repository of code. When you u The package specification contains the definition of all the elements in the package that you can reference from outside of the package. These are called the public elements of the package, and they act as the package interface. The following code sample is a package specification: -```text +```sql -- -- Package specification for the 'emp_admin' package. -- @@ -49,7 +49,7 @@ This code sample creates the `emp_admin` package specification. This package spe The body of the package contains the actual implementation behind the package specification. For the `emp_admin` package specification in the example, this code now create a package body that implements the specifications. The body contains the implementation of the functions and stored procedures in the specification. -```text +```sql -- -- Package body for the 'emp_admin' package. -- diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/03_referencing_a_package.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/03_referencing_a_package.mdx index 956b9fcb49e..1dc8c143cc5 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/03_referencing_a_package.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/03_referencing_a_package.mdx @@ -16,7 +16,7 @@ To reference the types, items, and subprograms that are declared in a package sp To invoke a function from the `emp_admin` package specification, execute the following SQL command: -```text +```sql SELECT emp_admin.get_dept_name(10) FROM DUAL; ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/04_using_packages_with_user_defined_types.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/04_using_packages_with_user_defined_types.mdx index 3cac9e14641..856a60822d3 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/04_using_packages_with_user_defined_types.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/04_using_packages_with_user_defined_types.mdx @@ -10,7 +10,7 @@ This example incorporates various user-defined types in the context of a package The package specification of `emp_rpt` shows the declaration of a record type `emprec_typ` and a weakly typed `REF CURSOR, emp_refcur` as publicly accessible. It also shows two functions and two procedures. The function, `open_emp_by_dept`, returns the `REF CURSOR` type `EMP_REFCUR`. Procedures `fetch_emp` and `close_refcur` both declare a weakly typed `REF CURSOR` as a formal parameter. -```text +```sql CREATE OR REPLACE PACKAGE emp_rpt IS TYPE emprec_typ IS RECORD ( @@ -36,7 +36,7 @@ END emp_rpt; The package body shows the declaration of several private variables: a static cursor `dept_cur`, a table type `depttab_typ`, a table variable `t_dept`, an integer variable `t_dept_max`, and a record variable `r_emp`. -```text +```sql CREATE OR REPLACE PACKAGE BODY emp_rpt IS CURSOR dept_cur IS SELECT * FROM dept; @@ -109,7 +109,7 @@ The function `open_emp_by_dept` returns a `REF CURSOR` variable for a result set The following anonymous block runs the package function and procedures. In the anonymous block's declaration section, note the declaration of cursor variable `v_emp_cur` using the package’s public `REF CURSOR` type, `EMP_REFCUR. v_emp_cur` contains the pointer to the result set that's passed between the package function and procedures. -```text +```sql DECLARE v_deptno dept.deptno%TYPE DEFAULT 30; v_emp_cur emp_rpt.EMP_REFCUR; @@ -126,7 +126,8 @@ END; The following is the result of this anonymous block: -```text +```sql +__OUTPUT__ EMPLOYEES IN DEPT #30: SALES EMPNO ENAME ----- ------- @@ -142,7 +143,7 @@ EMPNO ENAME The following anonymous block shows another way to achieve the same result. Instead of using the package procedures `fetch_emp` and `close_refcur`, the logic of these programs is coded directly into the anonymous block. In the anonymous block’s declaration section, note the addition of record variable `r_emp`, declared using the package’s public record type, `EMPREC_TYP`. -```text +```sql DECLARE v_deptno dept.deptno%TYPE DEFAULT 30; v_emp_cur emp_rpt.EMP_REFCUR; @@ -167,7 +168,8 @@ END; The following is the result of this anonymous block. -```text +```sql +__OUTPUT__ EMPLOYEES IN DEPT #30: SALES EMPNO ENAME ----- ------- diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/05_dropping_a_package.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/05_dropping_a_package.mdx index 3db484a6b7e..58e15476600 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/05_dropping_a_package.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/05_dropping_a_package.mdx @@ -8,7 +8,7 @@ legacyRedirectsGenerated: The syntax for deleting an entire package or the package body is: -```text +```sql DROP PACKAGE [ BODY ] package_name; ``` @@ -16,12 +16,12 @@ If you omit the keyword `BODY`, both the package specification and the package b The following statement destroys only the package body of `emp_admin`: -```text +```sql DROP PACKAGE BODY emp_admin; ``` The following statement drops the entire `emp_admin` package: -```text +```sql DROP PACKAGE emp_admin; ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/01_dbms_alert.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/01_dbms_alert.mdx index c0724f5d35c..770f5e8df15 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/01_dbms_alert.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/01_dbms_alert.mdx @@ -24,7 +24,7 @@ EDB Postgres Advanced Server allows a maximum of 500 concurrent alerts. You can To set a value for the `dbms_alert.max_alerts` variable, open the `postgresql.conf` file, which is located by default in `/opt/PostgresPlus/14AS/data`, with your choice of editor. Edit the `dbms_alert.max_alerts` parameter as shown: -```text +```ini dbms_alert.max_alerts = alert_count ``` @@ -34,7 +34,7 @@ dbms_alert.max_alerts = alert_count For the `dbms_alert.max_alerts` GUC to function correctly, the `custom_variable_classes` parameter must contain `dbms_alerts`: -```text +```ini custom_variable_classes = 'dbms_alert, …' ``` @@ -44,7 +44,7 @@ After editing the `postgresql.conf` file parameters, you must restart the server The `REGISTER` procedure enables the current session to be notified of the specified alert. -```text +```sql REGISTER( VARCHAR2) ``` @@ -58,7 +58,7 @@ REGISTER( VARCHAR2) This anonymous block registers for an alert named `alert_test` and then waits for the signal. -```text +```sql DECLARE v_name VARCHAR2(30) := 'alert_test'; v_msg VARCHAR2(80); @@ -84,7 +84,7 @@ Waiting for signal... The `REMOVE` procedure unregisters the session for the named alert. -```text +```sql REMOVE( VARCHAR2) ``` @@ -98,7 +98,7 @@ REMOVE( VARCHAR2) The `REMOVEALL` procedure unregisters the session for all alerts. -```text +```sql REMOVEALL ``` @@ -106,7 +106,7 @@ REMOVEALL The `SIGNAL` procedure signals the occurrence of the named alert. -```text +```sql SIGNAL( VARCHAR2, VARCHAR2) ``` @@ -124,7 +124,7 @@ SIGNAL( VARCHAR2, VARCHAR2) This anonymous block signals an alert for `alert_test`. -```text +```sql DECLARE v_name VARCHAR2(30) := 'alert_test'; BEGIN @@ -138,7 +138,7 @@ Issued alert for alert_test The `WAITANY` procedure waits for any of the registered alerts to occur. -```text +```sql WAITANY( OUT VARCHAR2, OUT VARCHAR2, OUT INTEGER, NUMBER) ``` @@ -165,7 +165,7 @@ WAITANY( OUT VARCHAR2, OUT VARCHAR2, This anonymous block uses the `WAITANY` procedure to receive an alert named `alert_test` or `any_alert`: -```text +```sql DECLARE v_name VARCHAR2(30); v_msg VARCHAR2(80); @@ -190,7 +190,7 @@ Waiting for signal... An anonymous block in a second session issues a signal for `any_alert`: -```text +```sql DECLARE v_name VARCHAR2(30) := 'any_alert'; BEGIN @@ -216,7 +216,7 @@ Alert timeout: 120 seconds The `WAITONE` procedure waits for the specified registered alert to occur. -```text +```sql WAITONE( VARCHAR2, OUT VARCHAR2, OUT INTEGER, NUMBER) ``` @@ -243,7 +243,7 @@ WAITONE( VARCHAR2, OUT VARCHAR2, This anonymous block is similar to the one used in the `WAITANY` example except the `WAITONE` procedure is used to receive the alert named `alert_test`. -```text +```sql DECLARE v_name VARCHAR2(30) := 'alert_test'; v_msg VARCHAR2(80); @@ -267,7 +267,7 @@ Waiting for signal... Signal sent for `alert_test` sent by an anonymous block in a second session: -```text +```sql DECLARE v_name VARCHAR2(30) := 'alert_test'; BEGIN @@ -295,7 +295,7 @@ The following example uses two triggers to send alerts when the `dept` table or The following are the triggers on the `dept` and `emp` tables: -```text +```sql CREATE OR REPLACE TRIGGER dept_alert_trig AFTER INSERT OR UPDATE OR DELETE ON dept DECLARE @@ -331,7 +331,7 @@ END; This anonymous block is executed in a session while updates to the `dept` and `emp` tables occur in other sessions: -```text +```sql DECLARE v_dept_alert VARCHAR2(30) := 'dept_alert'; v_emp_alert VARCHAR2(30) := 'emp_alert'; @@ -363,7 +363,7 @@ Waiting for signal... The following changes are made by user, mary: -```text +```sql INSERT INTO dept VALUES (50,'FINANCE','CHICAGO'); INSERT INTO emp (empno,ename,deptno) VALUES (9001,'JONES',50); INSERT INTO emp (empno,ename,deptno) VALUES (9002,'ALICE',50); @@ -371,7 +371,7 @@ INSERT INTO emp (empno,ename,deptno) VALUES (9002,'ALICE',50); The following change is made by user, john: -```text +```sql INSERT INTO dept VALUES (60,'HR','LOS ANGELES'); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/01_enqueue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/01_enqueue.mdx index 809f4fdb204..b0ea3adc866 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/01_enqueue.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/01_enqueue.mdx @@ -4,7 +4,7 @@ title: "ENQUEUE" The `ENQUEUE` procedure adds an entry to a queue. The signature is: -```text +```sql ENQUEUE( IN VARCHAR2, IN DBMS_AQ.ENQUEUE_OPTIONS_T, @@ -25,7 +25,7 @@ ENQUEUE( `enqueue_options` is a value of the type `enqueue_options_t`: -```text +```sql DBMS_AQ.ENQUEUE_OPTIONS_T IS RECORD( visibility BINARY_INTEGER DEFAULT ON_COMMIT, relative_msgid RAW(16) DEFAULT NULL, @@ -47,7 +47,7 @@ Currently, the only supported parameter values for `enqueue_options_t` are: `message_properties` is a value of the type `message_properties_t`: -```text +```sql message_properties_t IS RECORD( priority INTEGER, delay INTEGER, @@ -93,7 +93,7 @@ The supported values for `message_properties_t` are: The following anonymous block calls `DBMS_AQ.ENQUEUE`, adding a message to a queue named `work_order`: -```text +```sql DECLARE enqueue_options DBMS_AQ.ENQUEUE_OPTIONS_T; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/02_dequeue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/02_dequeue.mdx index 34f7b3802ae..7698dc7d17d 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/02_dequeue.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/02_dequeue.mdx @@ -4,7 +4,7 @@ title: "DEQUEUE" The `DEQUEUE` procedure dequeues a message. The signature is: -```text +```sql DEQUEUE( IN VARCHAR2, IN DBMS_AQ.DEQUEUE_OPTIONS_T, @@ -23,7 +23,7 @@ DEQUEUE( `dequeue_options` is a value of the type, `dequeue_options_t`: -```text +```sql DEQUEUE_OPTIONS_T IS RECORD( consumer_name CHARACTER VARYING(30), dequeue_mode INTEGER, @@ -54,7 +54,7 @@ Currently, the supported parameter values for `dequeue_options_t` are: `message_properties` is a value of the type `message_properties_t`: -```text +```sql message_properties_t IS RECORD( priority INTEGER, delay INTEGER, @@ -100,7 +100,7 @@ The supported values for `message_properties_t` are: The following anonymous block calls `DBMS_AQ.DEQUEUE`, retrieving a message from the queue and a payload: -```text +```sql DECLARE dequeue_options DBMS_AQ.DEQUEUE_OPTIONS_T; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/03_register.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/03_register.mdx index 499412ff820..98167879942 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/03_register.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/03_register.mdx @@ -4,7 +4,7 @@ title: "REGISTER" Use the `REGISTER` procedure to register an email address, procedure, or URL to notify when an item is enqueued or dequeued. The signature is: -```text +```sql REGISTER( IN SYS.AQ$_REG_INFO_LIST, IN NUMBER) @@ -33,7 +33,7 @@ REGISTER( The following anonymous block calls `DBMS_AQ.REGISTER`, registering procedures to notify when an item is added to or removed from a queue. A set of attributes (of `sys.aq$_reg_info` type) is provided for each subscription identified in the `DECLARE` section: -```text +```sql DECLARE subscription1 sys.aq$_reg_info; subscription2 sys.aq$_reg_info; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/04_unregister.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/04_unregister.mdx index 993e77e0c96..feafb943a01 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/04_unregister.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/02_dbms_aq/04_unregister.mdx @@ -4,7 +4,7 @@ title: "UNREGISTER" Use the `UNREGISTER` procedure to turn off notifications related to enqueueing and dequeueing. The signature is: -```text +```sql UNREGISTER( IN SYS.AQ$_REG_INFO_LIST, IN NUMBER) @@ -35,7 +35,7 @@ UNREGISTER( The following anonymous block calls `DBMS_AQ.UNREGISTER`, disabling the notifications specified in the example for `DBMS_AQ.REGISTER`: -```text +```sql DECLARE subscription1 sys.aq$_reg_info; subscription2 sys.aq$_reg_info; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/01_alter_queue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/01_alter_queue.mdx index 6c6c44f09cc..47a0b812815 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/01_alter_queue.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/01_alter_queue.mdx @@ -4,7 +4,7 @@ title: "ALTER_QUEUE" Use the `ALTER_QUEUE` procedure to modify an existing queue. The signature is: -```text +```sql ALTER_QUEUE( IN NUMBER DEFAULT NULL, IN NUMBER DEFAULT 0 @@ -43,6 +43,6 @@ ALTER_QUEUE( The following command alters a queue named `work_order`, setting the `retry_delay` parameter to 5 seconds: -```text +```sql EXEC DBMS_AQADM.ALTER_QUEUE(queue_name => 'work_order', retry_delay => 5); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/02_alter_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/02_alter_queue_table.mdx index cd7384d1af1..eed3c02f1df 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/02_alter_queue_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/02_alter_queue_table.mdx @@ -4,7 +4,7 @@ title: "ALTER_QUEUE_TABLE" Use the `ALTER_QUEUE_TABLE` procedure to modify an existing queue table. The signature is: -```text +```sql ALTER_QUEUE_TABLE ( IN VARCHAR2, IN VARCHAR2 DEFAULT NULL, @@ -34,7 +34,7 @@ ALTER_QUEUE_TABLE ( The following command modifies a queue table named `work_order_table`: -```text +```sql EXEC DBMS_AQADM.ALTER_QUEUE_TABLE (queue_table => 'work_order_table', comment => 'This queue table contains work orders for the shipping department.'); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/03_create_queue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/03_create_queue.mdx index 90111b8f293..2df5f4d2428 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/03_create_queue.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/03_create_queue.mdx @@ -4,7 +4,7 @@ title: "CREATE_QUEUE" Use the `CREATE_QUEUE` procedure to create a queue in an existing queue table. The signature is: -```text +```sql CREATE_QUEUE( IN VARCHAR2 IN VARCHAR2, @@ -63,7 +63,7 @@ CREATE_QUEUE( The following anonymous block creates a queue named `work_order` in the `work_order_table` table: -```text +```sql BEGIN DBMS_AQADM.CREATE_QUEUE ( queue_name => 'work_order', queue_table => 'work_order_table', comment => 'This queue contains pending work orders.'); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/04_create_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/04_create_queue_table.mdx index f389001a1da..6f203248066 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/04_create_queue_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/04_create_queue_table.mdx @@ -4,7 +4,7 @@ title: "CREATE_QUEUE_TABLE" Use the `CREATE_QUEUE_TABLE` procedure to create a queue table. The signature is: -```text +```sql CREATE_QUEUE_TABLE ( IN VARCHAR2, IN VARCHAR2, @@ -36,14 +36,14 @@ Use the `storage_clause` parameter to specify attributes for the queue table. On `storage_clause` can be one or more of the following: -```text +```sql TABLESPACE tablespace_name, PCTFREE integer, PCTUSED integer, INITRANS integer, MAXTRANS integer or STORAGE storage_option. ``` `storage_option` can be one or more of the following: -```text +```sql MINEXTENTS integer, MAXEXTENTS integer, PCTINCREASE integer, INITIAL size_clause, NEXT, FREELISTS integer, OPTIMAL size_clause, BUFFER_ POOL {KEEP|RECYCLE|DEFAULT}. @@ -97,7 +97,7 @@ POOL {KEEP|RECYCLE|DEFAULT}. The following anonymous block first creates a type (`work_order`) with attributes that hold a name (a `VARCHAR2`), and a project description (a `TEXT`). The block then uses that type to create a queue table: -```text +```sql BEGIN CREATE TYPE work_order AS (name VARCHAR2, project TEXT, completed BOOLEAN); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/05_drop_queue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/05_drop_queue.mdx index ed577ff3e3f..2308106ba27 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/05_drop_queue.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/05_drop_queue.mdx @@ -4,7 +4,7 @@ title: "DROP_QUEUE" Use the `DROP_QUEUE` procedure to delete a queue. The signature is: -```text +```sql DROP_QUEUE( IN VARCHAR2, IN BOOLEAN DEFAULT TRUE) @@ -24,7 +24,7 @@ DROP_QUEUE( The following anonymous block drops the queue named `work_order`: -```text +```sql BEGIN DBMS_AQADM.DROP_QUEUE(queue_name => 'work_order'); END; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/06_drop_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/06_drop_queue_table.mdx index 84655880f34..bbc68b622ae 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/06_drop_queue_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/06_drop_queue_table.mdx @@ -4,7 +4,7 @@ title: "DROP_QUEUE_TABLE" Use the `DROP_QUEUE_TABLE` procedure to delete a queue table. The signature is: -```text +```sql DROP_QUEUE_TABLE( IN VARCHAR2, IN BOOLEAN default FALSE, @@ -32,7 +32,7 @@ DROP_QUEUE_TABLE( The following anonymous block drops a table named `work_order_table`: -```text +```sql BEGIN DBMS_AQADM.DROP_QUEUE_TABLE ('work_order_table', force => TRUE); END; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/07_purge_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/07_purge_queue_table.mdx index fbcd15f6fa3..9ca32dc1745 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/07_purge_queue_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/07_purge_queue_table.mdx @@ -4,7 +4,7 @@ title: "PURGE_QUEUE_TABLE" Use the `PURGE_QUEUE_TABLE` procedure to delete messages from a queue table. The signature is: -```text +```sql PURGE_QUEUE_TABLE( IN VARCHAR2, IN VARCHAR2, @@ -34,7 +34,7 @@ PURGE_QUEUE_TABLE( The following anonymous block removes any messages from the `work_order_table` with a value in the `completed` column of `YES`: -```text +```sql DECLARE purge_options dbms_aqadm.aq$_purge_options_t; BEGIN diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/08_start_queue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/08_start_queue.mdx index a4d7feeb247..f9d4aafb65f 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/08_start_queue.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/08_start_queue.mdx @@ -4,7 +4,7 @@ title: "START_QUEUE" Use the `START_QUEUE` procedure to make a queue available for enqueuing and dequeueing. The signature is: -```text +```sql START_QUEUE( IN VARCHAR2, IN BOOLEAN DEFAULT TRUE, @@ -29,7 +29,7 @@ START_QUEUE( The following anonymous block makes a queue named `work_order` available for enqueueing: -```text +```sql BEGIN DBMS_AQADM.START_QUEUE (queue_name => 'work_order); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/09_stop_queue.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/09_stop_queue.mdx index 842d1e034c0..631eb9074d9 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/09_stop_queue.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/03_dbms_aqadm/09_stop_queue.mdx @@ -4,7 +4,7 @@ title: "STOP_QUEUE" Use the `STOP_QUEUE` procedure to disable enqueuing or dequeueing on a specified queue. The signature is: -```text +```sql STOP_QUEUE( IN VARCHAR2, IN BOOLEAN DEFAULT TRUE, @@ -34,7 +34,7 @@ STOP_QUEUE( The following anonymous block disables enqueueing and dequeueing from the queue named `work_order`: -```text +```sql BEGIN DBMS_AQADM.STOP_QUEUE(queue_name =>'work_order', enqueue=>TRUE, dequeue=>TRUE, wait=>TRUE); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/01_decrypt.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/01_decrypt.mdx index b1c31e51e1e..2c95a6e8c0e 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/01_decrypt.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/01_decrypt.mdx @@ -4,7 +4,7 @@ title: "DECRYPT" The `DECRYPT` function or procedure decrypts data using a user-specified cipher algorithm, key, and optional initialization vector. The signature of the `DECRYPT` function is: -```text +```sql DECRYPT ( IN RAW, IN INTEGER, IN RAW, IN RAW DEFAULT NULL) RETURN RAW @@ -12,7 +12,7 @@ DECRYPT The signature of the `DECRYPT` procedure is: -```text +```sql DECRYPT ( INOUT BLOB, IN BLOB, IN INTEGER, IN RAW, IN RAW DEFAULT NULL) @@ -20,7 +20,7 @@ DECRYPT or -```text +```sql DECRYPT ( INOUT CLOB, IN CLOB, IN INTEGER, IN RAW, IN RAW DEFAULT NULL) @@ -73,7 +73,7 @@ When invoked as a procedure, `DECRYPT` returns `BLOB` or `CLOB` data to a user-s This example uses the `DBMS_CRYPTO.DECRYPT` function to decrypt an encrypted password retrieved from the `passwords` table: -```text +```sql CREATE TABLE passwords ( principal VARCHAR2(90) PRIMARY KEY, -- username diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/02_encrypt.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/02_encrypt.mdx index 193fb644367..8a4ad48816a 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/02_encrypt.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/02_encrypt.mdx @@ -4,7 +4,7 @@ title: "ENCRYPT" The `ENCRYPT` function or procedure uses a user-specified algorithm, key, and optional initialization vector to encrypt `RAW`, `BLOB`, or `CLOB` data. The signature of the `ENCRYPT` function is: -```text +```sql ENCRYPT ( IN RAW, IN INTEGER, IN RAW, IN RAW DEFAULT NULL) RETURN RAW @@ -12,7 +12,7 @@ ENCRYPT The signature of the `ENCRYPT` procedure is: -```text +```sql ENCRYPT ( INOUT BLOB, IN BLOB, IN INTEGER, IN RAW, IN RAW DEFAULT NULL) @@ -20,7 +20,7 @@ ENCRYPT or -```text +```sql ENCRYPT ( INOUT BLOB, IN CLOB, IN INTEGER, IN RAW, IN RAW DEFAULT NULL) @@ -73,7 +73,7 @@ When invoked as a procedure, `ENCRYPT` returns `BLOB` or `CLOB` data to a user-s This example uses the `DBMS_CRYPTO.DES_CBC_PKCS5` Block Cipher Suite (a predefined set of algorithms and modifiers) to encrypt a value retrieved from the `passwords` table: -```text +```sql CREATE TABLE passwords ( principal VARCHAR2(90) PRIMARY KEY, -- username diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/03_hash.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/03_hash.mdx index d2805285fad..b7752199e5a 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/03_hash.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/03_hash.mdx @@ -4,7 +4,7 @@ title: "HASH" The `HASH` function uses a user-specified algorithm to return the hash value of a `RAW` or `CLOB` value. The `HASH` function is available in three forms: -```text +```sql HASH ( IN RAW, IN INTEGER) RETURN RAW @@ -32,7 +32,7 @@ HASH This example uses `DBMS_CRYPTO.HASH` to find the `md5` hash value of the string, `cleartext source`: -```text +```sql DECLARE typ INTEGER := DBMS_CRYPTO.HASH_MD5; hash_value RAW(100); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/04_mac.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/04_mac.mdx index 2d08d27f840..c2e07aa97cd 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/04_mac.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/04_mac.mdx @@ -4,7 +4,7 @@ title: "MAC" The `MAC` function uses a user-specified `MAC` function to return the hashed `MAC` value of a `RAW` or `CLOB` value. The `MAC` function is available in three forms: -```text +```sql MAC ( IN RAW, IN INTEGER, IN RAW) RETURN RAW @@ -35,7 +35,7 @@ MAC This example finds the hashed `MAC` value of the string `cleartext source`: -```text +```sql DECLARE typ INTEGER := DBMS_CRYPTO.HMAC_MD5; key RAW(100) := 'my secret key'; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/05_randombytes.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/05_randombytes.mdx index d383d216327..6aadb1c8b37 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/05_randombytes.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/05_randombytes.mdx @@ -4,7 +4,7 @@ title: "RANDOMBYTES" The `RANDOMBYTES` function returns a `RAW` value of the specified length, containing cryptographically random bytes. The signature is: -```text +```sql RANDOMBYTES ( IN INTEGER) RETURNS RAW ``` @@ -19,7 +19,7 @@ RANDOMBYTES This example uses `RANDOMBYTES` to return a value that is 1024 bytes long: -```text +```sql DECLARE result RAW(1024); BEGIN diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/06_randominteger.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/06_randominteger.mdx index ef81cd89f84..b6129aca0fa 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/06_randominteger.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/06_randominteger.mdx @@ -4,7 +4,7 @@ title: "RANDOMINTEGER" The `RANDOMINTEGER()` function returns a random integer between `0` and `268,435,455`. The signature is: -```text +```sql RANDOMINTEGER() RETURNS INTEGER ``` @@ -12,7 +12,7 @@ RANDOMINTEGER() RETURNS INTEGER This example uses the `RANDOMINTEGER` function to return a cryptographically strong random `INTEGER` value: -```text +```sql DECLARE result INTEGER; BEGIN diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/07_randomnumber.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/07_randomnumber.mdx index 0d94c3d9405..2cbdf4e0776 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/07_randomnumber.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/04_dbms_crypto/07_randomnumber.mdx @@ -4,7 +4,7 @@ title: "RANDOMNUMBER" The `RANDOMNUMBER()` function returns a random number between 0 and 268,435,455. The signature is: -```text +```sql RANDOMNUMBER() RETURNS NUMBER ``` @@ -12,7 +12,7 @@ RANDOMNUMBER() RETURNS NUMBER This example uses the `RANDOMNUMBER` function to return a cryptographically strong random number: -```text +```sql DECLARE result NUMBER; BEGIN diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/01_broken.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/01_broken.mdx index 1a2d18eef07..0c59524a1ac 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/01_broken.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/01_broken.mdx @@ -4,7 +4,7 @@ title: "BROKEN" The `BROKEN` procedure sets the state of a job to either broken or not broken. You can execute a broken job only by using the `RUN` procedure. -```text +```sql BROKEN( BINARY_INTEGER, BOOLEAN [, DATE ]) ``` @@ -26,7 +26,7 @@ BROKEN( BINARY_INTEGER, BOOLEAN [, DATE ]) Set the state of a job with job identifier 104 to broken: -```text +```sql BEGIN DBMS_JOB.BROKEN(104,true); END; @@ -34,7 +34,7 @@ END; Change the state back to not broken: -```text +```sql BEGIN DBMS_JOB.BROKEN(104,false); END; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/02_change.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/02_change.mdx index 9f6fd1e1167..e39bd021a95 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/02_change.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/02_change.mdx @@ -4,7 +4,7 @@ title: "CHANGE" The `CHANGE` procedure modifies certain job attributes including the stored procedure to run, the next date/time the job runs, and how often it runs. -```text +```sql CHANGE( BINARY_INTEGER VARCHAR2, DATE, VARCHAR2, BINARY_INTEGER, BOOLEAN) ``` @@ -39,7 +39,7 @@ CHANGE( BINARY_INTEGER VARCHAR2, DATE, Change the job to run next on December 13, 2007. Leave other parameters unchanged. -```text +```sql BEGIN DBMS_JOB.CHANGE(104,NULL,TO_DATE('13-DEC-07','DD-MON-YY'),NULL, NULL, NULL); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/03_interval.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/03_interval.mdx index c8bf97a6e17..204a898a1e3 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/03_interval.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/03_interval.mdx @@ -4,7 +4,7 @@ title: "INTERVAL" The `INTERVAL` procedure sets how often to run a job. -```text +```sql INTERVAL( BINARY_INTEGER, VARCHAR2) ``` @@ -22,7 +22,7 @@ INTERVAL( BINARY_INTEGER, VARCHAR2) Change the job to run once a week: -```text +```sql BEGIN DBMS_JOB.INTERVAL(104,'SYSDATE + 7'); END; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/04_next_date.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/04_next_date.mdx index 42dc45c272d..03832b89ec3 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/04_next_date.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/04_next_date.mdx @@ -4,7 +4,7 @@ title: "NEXT_DATE" The `NEXT_DATE` procedure sets the date/time to run the job next. -```text +```sql NEXT_DATE( BINARY_INTEGER, DATE) ``` @@ -22,7 +22,7 @@ NEXT_DATE( BINARY_INTEGER, DATE) Change the job to run next on December 14, 2007: -```text +```sql BEGIN DBMS_JOB.NEXT_DATE(104, TO_DATE('14-DEC-07','DD-MON-YY')); END; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/05_remove.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/05_remove.mdx index 512d6e4bc77..bfe97f2c78f 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/05_remove.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/05_remove.mdx @@ -4,7 +4,7 @@ title: "REMOVE" The `REMOVE` proceduzre deletes the specified job from the database. You must resubmit the job using the `SUBMIT` procedure to execute it again. The stored procedure that was associated with the job isn't deleted. -```text +```sql REMOVE( BINARY_INTEGER) ``` @@ -18,7 +18,7 @@ REMOVE( BINARY_INTEGER) Remove a job from the database: -```text +```sql BEGIN DBMS_JOB.REMOVE(104); END; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/06_run.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/06_run.mdx index 6b5f00bf215..e9d183c8db6 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/06_run.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/06_run.mdx @@ -4,7 +4,7 @@ title: "RUN" The `RUN` procedure forces the job to run even if its state is broken. -```text +```sql RUN( BINARY_INTEGER) ``` @@ -18,7 +18,7 @@ RUN( BINARY_INTEGER) Force a job to run. -```text +```sql BEGIN DBMS_JOB.RUN(104); END; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/07_submit.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/07_submit.mdx index 8ea1d7ffbba..03e4a832cf9 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/07_submit.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/07_submit.mdx @@ -8,7 +8,7 @@ The `SUBMIT` procedure creates a job definition and stores it in the database. A - When to first run the job - A date function that calculates the next date/time for the job to run -```text +```sql SUBMIT( OUT BINARY_INTEGER, VARCHAR2 [, DATE [, VARCHAR2 [, BOOLEAN ]]]) ``` @@ -42,7 +42,7 @@ SUBMIT( OUT BINARY_INTEGER, VARCHAR2 This example creates a job using the stored procedure `job_proc`. The job executes immediately and runs once a day after that, as set by the `interval` parameter, `SYSDATE + 1`. -```text +```sql DECLARE jobid INTEGER; BEGIN @@ -56,9 +56,9 @@ jobid: 104 The job immediately executes the procedure `job_proc`, populating the table `jobrun` with a row: -```text +```sql SELECT * FROM jobrun; - +__OUTPUT__ runtime ------------------------------------- job_proc run at 2007-12-11 11:43:25 diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/08_what.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/08_what.mdx index 37aedf64c73..c0f9abec666 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/08_what.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/08_what.mdx @@ -4,7 +4,7 @@ title: "WHAT" The `WHAT` procedure changes the stored procedure that the job executes. -```text +```sql WHAT( BINARY_INTEGER, VARCHAR2) ``` @@ -22,7 +22,7 @@ WHAT( BINARY_INTEGER, VARCHAR2) Change the job to run the `list_emp` procedure: -```text +```sql BEGIN DBMS_JOB.WHAT(104,'list_emp;'); END; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/index.mdx index 6eefd2d7669..c1d9650de3c 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/05_dbms_job/index.mdx @@ -26,7 +26,7 @@ EDB Postgres Advanced Server's implementation of `DBMS_JOB` is a partial impleme Before using `DBMS_JOB`, a database superuser must create the pgAgent and `DBMS_JOB` extension. Use the psql client to connect to a database and invoke the command: -```text +```sql CREATE EXTENSION pgagent; CREATE EXTENSION dbms_job; ``` @@ -40,7 +40,7 @@ Before the job executes, the expression in the `interval` parameter is evaluated The following examples use the stored procedure `job_proc`. The procedure inserts a timestamp into the table `jobrun`, which contains a single column, `VARCHAR2`. -```text +```sql CREATE TABLE jobrun ( runtime VARCHAR2(40) ); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/01_append.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/01_append.mdx index 17fed2d485b..4c881a3978a 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/01_append.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/01_append.mdx @@ -4,7 +4,7 @@ title: "APPEND" The `APPEND` procedure appends one large object to another. Both large objects must be the same type. -```text +```sql APPEND( IN OUT { BLOB | CLOB }, { BLOB | CLOB }) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/02_compare.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/02_compare.mdx index 214286d10d1..5b9f47f9586 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/02_compare.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/02_compare.mdx @@ -4,7 +4,7 @@ title: "COMPARE" The `COMPARE` procedure performs an exact byte-by-byte comparison of two large objects for a given length at given offsets. The large objects being compared must be the same data type. -```text +```sql INTEGER COMPARE( { BLOB | CLOB }, { BLOB | CLOB } [, INTEGER [, INTEGER [, INTEGER ]]]) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/03_converttoblob.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/03_converttoblob.mdx index 2b95f048a87..556fc0c4774 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/03_converttoblob.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/03_converttoblob.mdx @@ -4,7 +4,7 @@ title: "CONVERTTOBLOB" The `CONVERTTOBLOB` procedure converts character data to binary. -```text +```sql CONVERTTOBLOB( IN OUT BLOB, CLOB, INTEGER, IN OUT INTEGER, IN OUT INTEGER, NUMBER, diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/04_converttoclob.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/04_converttoclob.mdx index 15e3944e4b2..6d53a4626e5 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/04_converttoclob.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/04_converttoclob.mdx @@ -4,7 +4,7 @@ title: "CONVERTTOCLOB" The `CONVERTTOCLOB` procedure converts binary data to character. -```text +```sql CONVERTTOCLOB( IN OUT CLOB, BLOB, INTEGER, IN OUT INTEGER, IN OUT INTEGER, NUMBER, diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/05_copy.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/05_copy.mdx index d62d9cbea66..e35684fe06d 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/05_copy.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/05_copy.mdx @@ -4,7 +4,7 @@ title: "COPY" The `COPY` procedure copies one large object to another. The source and destination large objects must be the same data type. -```text +```sql COPY( IN OUT { BLOB | CLOB }, { BLOB | CLOB }, INTEGER diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/06_erase.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/06_erase.mdx index e2eb369f8af..62057d69f05 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/06_erase.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/06_erase.mdx @@ -4,7 +4,7 @@ title: "ERASE" The `ERASE` procedure erases a portion of a large object. To erase a large object means to replace the specified portion with zero-byte fillers for `BLOB` or with spaces for `CLOB`. The actual size of the large object isn't altered. -```text +```sql ERASE( IN OUT { BLOB | CLOB }, IN OUT INTEGER [, INTEGER ]) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/07_get_storage_limit.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/07_get_storage_limit.mdx index 4b3b14ddcb8..3b9560d75a6 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/07_get_storage_limit.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/07_get_storage_limit.mdx @@ -4,7 +4,7 @@ title: "GET_STORAGE_LIMIT" The `GET_STORAGE_LIMIT` function returns the limit on the largest allowable large object. -```text +```sql INTEGER GET_STORAGE_LIMIT( BLOB) INTEGER GET_STORAGE_LIMIT( CLOB) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/08_getlength.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/08_getlength.mdx index 578ec47ba75..3b0184411d2 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/08_getlength.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/08_getlength.mdx @@ -4,7 +4,7 @@ title: "GETLENGTH" The `GETLENGTH` function returns the length of a large object. -```text +```sql INTEGER GETLENGTH( BLOB) INTEGER GETLENGTH( CLOB) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/09_instr.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/09_instr.mdx index 73d6d6285c7..3eb8ccc44a2 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/09_instr.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/09_instr.mdx @@ -4,7 +4,7 @@ title: "INSTR" The `INSTR` function returns the location of the nth occurrence of a given pattern in a large object. -```text +```sql INTEGER INSTR( { BLOB | CLOB }, { RAW | VARCHAR2 } [, INTEGER [, INTEGER ]]) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/10_read.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/10_read.mdx index f80dedf28c3..7e3ebbaed47 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/10_read.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/10_read.mdx @@ -4,7 +4,7 @@ title: "READ" The `READ` procedure reads a portion of a large object into a buffer. -```text +```sql READ( { BLOB | CLOB }, IN OUT BINARY_INTEGER, INTEGER, OUT { RAW | VARCHAR2 }) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/11_substr.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/11_substr.mdx index 4e832f9341e..cfb32b1f1e3 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/11_substr.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/11_substr.mdx @@ -4,7 +4,7 @@ title: "SUBSTR" The `SUBSTR` function returns a portion of a large object. -```text +```sql { RAW | VARCHAR2 } SUBSTR( { BLOB | CLOB } [, INTEGER [, INTEGER ]]) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/12_trim.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/12_trim.mdx index 244f22ae6ae..c3f3c34e5db 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/12_trim.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/12_trim.mdx @@ -4,7 +4,7 @@ title: "TRIM" The `TRIM` procedure truncates a large object to the specified length. -```text +```sql TRIM( IN OUT { BLOB | CLOB }, INTEGER) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/13_write.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/13_write.mdx index f59057797ae..cb947147816 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/13_write.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/13_write.mdx @@ -4,7 +4,7 @@ title: "WRITE" The `WRITE` procedure writes data into a large object. Any existing data in the large object at the specified offset for the given length is overwritten by data given in the buffer. -```text +```sql WRITE( IN OUT { BLOB | CLOB }, BINARY_INTEGER, INTEGER, { RAW | VARCHAR2 }) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/14_writeappend.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/14_writeappend.mdx index 8cebee13d15..13cfdc0c3b7 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/14_writeappend.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/06_dbms_lob/14_writeappend.mdx @@ -4,7 +4,7 @@ title: "WRITEAPPEND" The `WRITEAPPEND` procedure adds data to the end of a large object. -```text +```sql WRITEAPPEND( IN OUT { BLOB | CLOB }, BINARY_INTEGER, { RAW | VARCHAR2 }) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/07_dbms_lock.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/07_dbms_lock.mdx index a31ca5b775d..2e975cce04e 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/07_dbms_lock.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/07_dbms_lock.mdx @@ -19,7 +19,7 @@ EDB Postgres Advanced Server's implementation of `DBMS_LOCK` is a partial implem The `SLEEP` procedure suspends the current session for the specified number of seconds. -```text +```sql SLEEP( NUMBER) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/01_get_mv_dependencies.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/01_get_mv_dependencies.mdx index e83ef4a8350..1ac0e5bdbdb 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/01_get_mv_dependencies.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/01_get_mv_dependencies.mdx @@ -4,7 +4,7 @@ title: "GET_MV_DEPENDENCIES" When given the name of a materialized view, `GET_MV_DEPENDENCIES` returns a list of items that depend on the specified view. The signature is: -```text +```sql GET_MV_DEPENDENCIES( IN VARCHAR2, OUT VARCHAR2); @@ -24,7 +24,7 @@ GET_MV_DEPENDENCIES( This example displays a list of the dependencies on a materialized view named `public.emp_view`. -```text +```sql DECLARE deplist VARCHAR2(1000); BEGIN diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/02_refresh.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/02_refresh.mdx index 774db7b8dff..fbd4a451607 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/02_refresh.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/02_refresh.mdx @@ -4,7 +4,7 @@ title: "REFRESH" Use the `REFRESH` procedure to refresh all views specified in either a comma-separated list of view names or a table of `DBMS_UTILITY.UNCL_ARRAY` values. The procedure has two signatures. Use the first form when specifying a comma-separated list of view names: -```text +```sql REFRESH( IN VARCHAR2, IN VARCHAR2 DEFAULT NULL, @@ -20,7 +20,7 @@ REFRESH( Use the second form to specify view names in a table of `DBMS_UTILITY.UNCL_ARRAY` values: -```text +```sql REFRESH( IN OUT DBMS_UTILITY.UNCL_ARRAY, IN VARCHAR2 DEFAULT NULL, @@ -84,6 +84,6 @@ REFRESH( This example uses `DBMS_MVIEW.REFRESH` to perform a complete refresh on the `public.emp_view` materialized view: -```text +```sql EXEC DBMS_MVIEW.REFRESH(list => 'public.emp_view', method => 'C'); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/03_refresh_all_mviews.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/03_refresh_all_mviews.mdx index 247817e8d4e..dafb717b8af 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/03_refresh_all_mviews.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/03_refresh_all_mviews.mdx @@ -4,7 +4,7 @@ title: "REFRESH_ALL_MVIEWS" Use the `REFRESH_ALL_MVIEWS` procedure to refresh any materialized views that weren't refreshed since the table or view on which the view depends was modified. The signature is: -```text +```sql REFRESH_ALL_MVIEWS( OUT BINARY_INTEGER, IN VARCHAR2 DEFAULT NULL, @@ -39,7 +39,7 @@ REFRESH_ALL_MVIEWS( This example performs a complete refresh on all materialized views: -```text +```sql DECLARE errors INTEGER; BEGIN diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/04_refresh_dependent.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/04_refresh_dependent.mdx index ecdcc99d2d1..35242daf6fc 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/04_refresh_dependent.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/08_dbms_mview/04_refresh_dependent.mdx @@ -6,7 +6,7 @@ Use the `REFRESH_DEPENDENT` procedure to refresh all material views that depend Use the first form of the procedure to refresh all material views that depend on the views specified in a comma-separated list: -```text +```sql REFRESH_DEPENDENT( OUT BINARY_INTEGER, IN VARCHAR2, @@ -19,7 +19,7 @@ REFRESH_DEPENDENT( Use the second form of the procedure to refresh all material views that depend on the views specified in a table of `DBMS_UTILITY.UNCL_ARRAY` values: -```text +```sql REFRESH_DEPENDENT( OUT BINARY_INTEGER, IN DBMS_UTILITY.UNCL_ARRAY, @@ -68,7 +68,7 @@ REFRESH_DEPENDENT( This example performs a complete refresh on all materialized views that depend on a materialized view named `emp_view` that resides in the `public` schema: -```text +```sql DECLARE errors INTEGER; BEGIN diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/09_dbms_output.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/09_dbms_output.mdx index 02f6496f2aa..9e907ca85ef 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/09_dbms_output.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/09_dbms_output.mdx @@ -32,7 +32,7 @@ The following table lists the public variables available in the `DBMS_OUTPUT` pa The `CHARARR` is for storing multiple message lines. -```text +```sql TYPE chararr IS TABLE OF VARCHAR2(32767) INDEX BY BINARY_INTEGER; ``` @@ -42,7 +42,7 @@ The `DISABLE` procedure clears out the message buffer. You can no longer access Use the `ENABLE or `SERVEROUTPUT(TRUE)` procedure to reenable sending and receiving messages. -```text +```sql DISABLE ``` @@ -50,7 +50,7 @@ DISABLE This anonymous block disables sending and receiving messages in the current session. -```text +```sql BEGIN DBMS_OUTPUT.DISABLE; END; @@ -65,7 +65,7 @@ The destination of a message sent with `PUT`, `PUT_LINE`, or `NEW_LINE` depends - If the last state of `SERVEROUTPUT` is `TRUE`, the message goes to standard output of the command line. - If the last state of `SERVEROUTPUT` is `FALSE`, the message goes to the message buffer. -```text +```sql ENABLE [ ( INTEGER) ] ``` @@ -79,7 +79,7 @@ ENABLE [ ( INTEGER) ] This anonymous block enables messages. Setting `SERVEROUTPUT(TRUE)` forces them to standard output. -```text +```sql BEGIN DBMS_OUTPUT.ENABLE; DBMS_OUTPUT.SERVEROUTPUT(TRUE); @@ -91,7 +91,7 @@ Messages enabled You can achieve the same effect by using `SERVEROUTPUT(TRUE)`. -```text +```sql BEGIN DBMS_OUTPUT.SERVEROUTPUT(TRUE); DBMS_OUTPUT.PUT_LINE('Messages enabled'); @@ -102,7 +102,7 @@ Messages enabled This anonymous block enables messages, but setting `SERVEROUTPUT(FALSE)` directs messages to the message buffer. -```text +```sql BEGIN DBMS_OUTPUT.ENABLE; DBMS_OUTPUT.SERVEROUTPUT(FALSE); @@ -114,7 +114,7 @@ END; The `GET_LINE` procedure retrieves a line of text from the message buffer. Only text that was terminated by an end-of-line character sequence is retrieved. That includes complete lines generated using `PUT_LINE` or by a series of `PUT` calls followed by a `NEW_LINE` call. -```text +```sql GET_LINE( OUT VARCHAR2, OUT INTEGER) ``` @@ -132,7 +132,7 @@ GET_LINE( OUT VARCHAR2, OUT INTEGER) This anonymous block writes the `emp` table out to the message buffer as a comma-delimited string for each row. -```text +```sql EXEC DBMS_OUTPUT.SERVEROUTPUT(FALSE); DECLARE @@ -152,7 +152,7 @@ END; This anonymous block reads the message buffer and inserts the messages written by the prior example into a table named `messages`. The rows in `messages` are then displayed. -```text +```sql CREATE TABLE messages ( status INTEGER, msg VARCHAR2(100) @@ -170,7 +170,7 @@ BEGIN END; SELECT msg FROM messages; - +__OUTPUT__ msg ----------------------------------------------------------------- 7369,SMITH,CLERK,7902,17-DEC-80 00:00:00,800.00,,20 @@ -194,7 +194,7 @@ SELECT msg FROM messages; The `GET_LINES` procedure retrieves one or more lines of text from the message buffer into a collection. Only text that was terminated by an end-of-line character sequence is retrieved. That includes complete lines generated using `PUT_LINE` or by a series of `PUT` calls followed by a `NEW_LINE` call. -```text +```sql GET_LINES( OUT CHARARR, IN OUT INTEGER) ``` @@ -216,7 +216,7 @@ GET_LINES( OUT CHARARR, IN OUT INTEGER) This example uses the `GET_LINES` procedure to store all rows from the `emp` table that were placed in the message buffer into an array. -```text +```sql EXEC DBMS_OUTPUT.SERVEROUTPUT(FALSE); DECLARE @@ -245,7 +245,7 @@ BEGIN END; SELECT msg FROM messages; - +__OUTPUT__ msg ----------------------------------------------------------------- 7369,SMITH,CLERK,7902,17-DEC-80 00:00:00,800.00,,20 @@ -269,7 +269,7 @@ SELECT msg FROM messages; The `NEW_LINE` procedure writes an end-of-line character sequence in the message buffer. -```text +```sql NEW_LINE ``` @@ -281,7 +281,7 @@ The `NEW_LINE` procedure expects no parameters. The `PUT` procedure writes a string to the message buffer. No end-of-line character sequence is written at the end of the string. Use the `NEW_LINE` procedure to add an end-of-line character sequence. -```text +```sql PUT( VARCHAR2) ``` @@ -295,7 +295,7 @@ PUT( VARCHAR2) The following example uses the `PUT` procedure to display a comma-delimited list of employees from the `emp` table. -```text +```sql DECLARE CURSOR emp_cur IS SELECT * FROM emp ORDER BY empno; BEGIN @@ -353,7 +353,7 @@ PUT_LINE( VARCHAR2) This example uses the `PUT_LINE` procedure to display a comma-delimited list of employees from the `emp` table. -```text +```sql DECLARE v_emprec VARCHAR2(120); CURSOR emp_cur IS SELECT * FROM emp ORDER BY empno; @@ -389,7 +389,7 @@ The `SERVEROUTPUT` procedure directs messages to standard output of the command The default setting of `SERVEROUTPUT` depends on the implementation. For example, in Oracle SQL\*Plus, `SERVEROUTPUT(FALSE)` is the default. In PSQL, `SERVEROUTPUT(TRUE)` is the default. Also, in Oracle SQL\*Plus, you control this setting using the SQL\*Plus `SET` comman, not by a stored procedure as implemented in EDB Postgres Advanced Server. -```text +```sql SERVEROUTPUT( BOOLEAN) ``` @@ -405,7 +405,7 @@ To get an Oracle-style display output, you can set the `dbms_output.serveroutput This anonymous block sends the first message to the command line and the second message to the message buffer. -```text +```sql BEGIN DBMS_OUTPUT.SERVEROUTPUT(TRUE); DBMS_OUTPUT.PUT_LINE('This message goes to the command line'); @@ -418,7 +418,7 @@ This message goes to the command line If, in the same session, the following anonymous block is executed, the message stored in the message buffer from the prior example is flushed. It's displayed on the command line along with the new message. -```text +```sql BEGIN DBMS_OUTPUT.SERVEROUTPUT(TRUE); DBMS_OUTPUT.PUT_LINE('Flush messages from the buffer'); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/01_create_pipe.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/01_create_pipe.mdx index e202cb49330..c6bbef203bb 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/01_create_pipe.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/01_create_pipe.mdx @@ -4,7 +4,7 @@ title: "CREATE_PIPE" The `CREATE_PIPE` function creates an explicit public pipe or an explicit private pipe with a specified name. -```text +```sql INTEGER CREATE_PIPE( VARCHAR2 [, INTEGER ] [, BOOLEAN ]) ``` @@ -31,7 +31,7 @@ The `CREATE_PIPE` function creates an explicit public pipe or an explicit privat This example creates a private pipe named `messages`: -```text +```sql DECLARE v_status INTEGER; BEGIN @@ -43,7 +43,7 @@ CREATE_PIPE status: 0 This example creates a public pipe named `mailbox`: -```text +```sql DECLARE v_status INTEGER; BEGIN diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/02_next_item_pipe.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/02_next_item_pipe.mdx index d593cf01c67..6c094d3bae3 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/02_next_item_pipe.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/02_next_item_pipe.mdx @@ -4,7 +4,7 @@ title: "NEXT_ITEM_TYPE" The `NEXT_ITEM_TYPE` function returns an integer code identifying the data type of the next data item in a message that was retrieved into the session’s local message buffer. As each item is moved off of the local message buffer with the `UNPACK_MESSAGE` procedure, the `NEXT_ITEM_TYPE` function returns the data type code for the next available item. A code of `0` is returned when no more items are left in the message. -```text +```sql INTEGER NEXT_ITEM_TYPE ``` @@ -29,7 +29,7 @@ The `NEXT_ITEM_TYPE` function returns an integer code identifying the data type This example shows a pipe packed with a `NUMBER` item, a `VARCHAR2` item, a `DATE` item, and a `RAW` item. A second anonymous block then uses the `NEXT_ITEM_TYPE` function to display the type code of each item. -```text +```sql DECLARE v_number NUMBER := 123; v_varchar VARCHAR2(20) := 'Character data'; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/03_pack_message.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/03_pack_message.mdx index dabe426120f..5196135d59a 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/03_pack_message.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/03_pack_message.mdx @@ -4,7 +4,7 @@ title: "PACK_MESSAGE" The `PACK_MESSAGE` procedure places an item of data in the session’s local message buffer. You must execute `PACK_MESSAGE` at least once before issuing a `SEND_MESSAGE` call. -```text +```sql PACK_MESSAGE( { DATE | NUMBER | VARCHAR2 | RAW }) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/04_purge.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/04_purge.mdx index 5121727a367..7566677e672 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/04_purge.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/04_purge.mdx @@ -4,7 +4,7 @@ title: "PURGE" The `PURGE` procedure removes the unreceived messages from a specified implicit pipe. -```text +```sql PURGE( VARCHAR2) ``` @@ -20,7 +20,7 @@ Use the `REMOVE_PIPE` function to delete an explicit pipe. Two messages are sent on a pipe: -```text +```sql DECLARE v_status INTEGER; BEGIN @@ -39,7 +39,7 @@ SEND_MESSAGE status: 0 Receive the first message and unpack it: -```text +```sql DECLARE v_item VARCHAR2(80); v_status INTEGER; @@ -56,13 +56,13 @@ Item: Message #1 Purge the pipe: -```text +```sql EXEC DBMS_PIPE.PURGE('pipe'); ``` Try to retrieve the next message. The `RECEIVE_MESSAGE` call returns status code `1` indicating it timed out because no message was available. -```text +```sql DECLARE v_item VARCHAR2(80); v_status INTEGER; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/05_receive_message.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/05_receive_message.mdx index 20bb4a0e727..639132daa1f 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/05_receive_message.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/05_receive_message.mdx @@ -4,7 +4,7 @@ title: "RECEIVE_MESSAGE" The `RECEIVE_MESSAGE` function obtains a message from a specified pipe. -```text +```sql INTEGER RECEIVE_MESSAGE( VARCHAR2 [, INTEGER ]) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/06_remove_pipe.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/06_remove_pipe.mdx index 8abf4ed83ab..a81df0fed36 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/06_remove_pipe.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/06_remove_pipe.mdx @@ -4,7 +4,7 @@ title: "REMOVE_PIPE" The `REMOVE_PIPE` function deletes an explicit private or explicit public pipe. -```text +```sql INTEGER REMOVE_PIPE( VARCHAR2) ``` @@ -24,7 +24,7 @@ Use the `REMOVE_PIPE` function to delete explicitly created pipes, that is, pipe Two messages are sent on a pipe: -```text +```sql DECLARE v_status INTEGER; BEGIN @@ -47,7 +47,7 @@ SEND_MESSAGE status: 0 Receive the first message and unpack it: -```text +```sql DECLARE v_item VARCHAR2(80); v_status INTEGER; @@ -64,9 +64,9 @@ Item: Message #1 Remove the pipe: -```text +```sql SELECT DBMS_PIPE.REMOVE_PIPE('pipe') FROM DUAL; - +__OUTPUT__ remove_pipe ------------- 0 @@ -75,7 +75,7 @@ remove_pipe Try to retrieve the next message. The `RECEIVE_MESSAGE` call returns status code `1` indicating it timed out because the pipe was deleted. -```text +```sql DECLARE v_item VARCHAR2(80); v_status INTEGER; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/07_reset_buffer.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/07_reset_buffer.mdx index 19161900e3c..8146c6cfb09 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/07_reset_buffer.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/07_reset_buffer.mdx @@ -4,7 +4,7 @@ title: "RESET_BUFFER" The `RESET_BUFFER` procedure resets a pointer to the session’s local message buffer back to the beginning of the buffer. This causes later `PACK_MESSAGE` calls to overwrite any data items that were in the message buffer before the `RESET_BUFFER` call. -```text +```sql RESET_BUFFER ``` @@ -12,7 +12,7 @@ RESET_BUFFER A message to John is written to the local message buffer. It is replaced by a message to Bob by calling `RESET_BUFFER`. The message is sent on the pipe. -```text +```sql DECLARE v_status INTEGER; BEGIN @@ -31,7 +31,7 @@ SEND_MESSAGE status: 0 The message to Bob is in the received message: -```text +```sql DECLARE v_item VARCHAR2(80); v_status INTEGER; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/08_send_message.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/08_send_message.mdx index 123eea97e13..bce900825e5 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/08_send_message.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/08_send_message.mdx @@ -4,7 +4,7 @@ title: "SEND_MESSAGE" The `SEND_MESSAGE` function sends a message from the session’s local message buffer to the specified pipe. -```text +```sql SEND_MESSAGE( VARCHAR2 [, INTEGER ] [, INTEGER ]) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/09_unique_session_name.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/09_unique_session_name.mdx index ba288605f2d..3a54ca0db09 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/09_unique_session_name.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/09_unique_session_name.mdx @@ -4,7 +4,7 @@ title: "UNIQUE_SESSION_NAME" The `UNIQUE_SESSION_NAME` function returns a name that is unique to the current session. -```text +```sql VARCHAR2 UNIQUE_SESSION_NAME ``` @@ -18,7 +18,7 @@ The `UNIQUE_SESSION_NAME` function returns a name that is unique to the current The following anonymous block retrieves and displays a unique session name: -```text +```sql DECLARE v_session VARCHAR2(30); BEGIN diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/10_unpack_message.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/10_unpack_message.mdx index f95008e4e17..264ca8f7cb5 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/10_unpack_message.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/10_unpack_message.mdx @@ -4,7 +4,7 @@ title: "UNPACK_MESSAGE" The `UNPACK_MESSAGE` procedure copies the data items of a message from the local message buffer to a specified program variable. You must place the message in the local message buffer with the `RECEIVE_MESSAGE` function before using `UNPACK_MESSAGE`. -```text +```sql UNPACK_MESSAGE( OUT { DATE | NUMBER | VARCHAR2 | RAW }) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/11_comprehensive_example.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/11_comprehensive_example.mdx index 48be5132f13..c7b79d2bc9a 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/11_comprehensive_example.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/10_dbms_pipe/11_comprehensive_example.mdx @@ -8,7 +8,7 @@ This example uses a pipe as a “mailbox." Three procedures are enclosed in a pa 2. Add a multi-item message to the mailbox (up to three items). 3. Display the full contents of the mailbox. -```text +```sql CREATE OR REPLACE PACKAGE mailbox IS PROCEDURE create_mailbox; @@ -116,7 +116,7 @@ END mailbox; The following shows executing the procedures in `mailbox`. The first procedure creates a public pipe using a name generated by the `UNIQUE_SESSION_NAME` function. -```text +```sql EXEC mailbox.create_mailbox; Created mailbox: PG$PIPE$13$3940 @@ -124,7 +124,7 @@ Created mailbox: PG$PIPE$13$3940 Using the mailbox name, any user in the same database with access to the `mailbox` package and `DBMS_PIPE` package can add messages: -```text +```sql EXEC mailbox.add_message('PG$PIPE$13$3940','Hi, John','Can you attend a meeting at 3:00, today?','-- Mary'); @@ -138,7 +138,7 @@ Added message with 3 item(s) to mailbox PG$PIPE$13$3940 Finally, the contents of the mailbox can be emptied: -```text +```sql EXEC mailbox.empty_mailbox('PG$PIPE$13$3940'); ****** Start message #1 ****** diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/11_dbms_profiler.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/11_dbms_profiler.mdx index f9901fedd74..acdb750eded 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/11_dbms_profiler.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/11_dbms_profiler.mdx @@ -38,7 +38,7 @@ The functions in the `DBMS_PROFILER` package return a status code to indicate su The `FLUSH_DATA` function/procedure flushes the data collected in the current session without terminating the profiler session. The data is flushed to the tables described in the EDB Postgres Advanced Server Performance Features Guide. The function and procedure signatures are: -```text +```sql INTEGER FLUSH_DATA FLUSH_DATA @@ -54,7 +54,7 @@ FLUSH_DATA The `GET_VERSION` procedure returns the version of `DBMS_PROFILER`. The procedure signature is: -```text +```sql GET_VERSION( OUT INTEGER, OUT INTEGER) ``` @@ -72,7 +72,7 @@ GET_VERSION( OUT INTEGER, OUT INTEGER) The `INTERNAL_VERSION_CHECK` function confirms that the current version of `DBMS_PROFILER` works with the current database. The function signature is: -```text +```sql INTEGER INTERNAL_VERSION_CHECK ``` @@ -86,7 +86,7 @@ The `INTERNAL_VERSION_CHECK` function confirms that the current version of `DBMS The `PAUSE_PROFILER` function/procedure pauses a profiling session. The function and procedure signatures are: -```text +```sql INTEGER PAUSE_PROFILER PAUSE_PROFILER @@ -102,7 +102,7 @@ PAUSE_PROFILER The `RESUME_PROFILER` function/procedure pauses a profiling session. The function and procedure signatures are: -```text +```sql INTEGER RESUME_PROFILER RESUME_PROFILER @@ -118,7 +118,7 @@ RESUME_PROFILER The `START_PROFILER` function/procedure starts a data collection session. The function and procedure signatures are: -```text +```sql INTEGER START_PROFILER( TEXT := SYSDATE, TEXT := '' [, OUT INTEGER ]) @@ -148,7 +148,7 @@ START_PROFILER( TEXT := SYSDATE, The `STOP_PROFILER` function/procedure stops a profiling session and flushes the performance information to the `DBMS_PROFILER` tables and view. The function and procedure signatures are: -```text +```sql INTEGER STOP_PROFILER STOP_PROFILER @@ -166,7 +166,7 @@ The `DBMS_PROFILER` package collects and stores performance information about th `DBMS_PROFILER` works by recording a set of performance-related counters and timers for each line of PL/pgSQL or SPL statement that executes in a profiling session. The counters and timers are stored in a table named `SYS.PLSQL_PROFILER_DATA`. When you complete a profiling session, `DBMS_PROFILER` writes a row to the performance statistics table for each line of PL/pgSQL or SPL code that executed in the session. For example, suppose you execute the following function: -```text +```sql 1 - CREATE OR REPLACE FUNCTION getBalance(acctNumber INTEGER) 2 - RETURNS NUMERIC AS $$ 3 - DECLARE @@ -216,7 +216,7 @@ The following example uses `DBMS_PROFILER` to retrieve performance information f 1. Open the EDB-PSQL command line, and establish a connection to the EDB Postgres Advanced Server database. Use an `EXEC` statement to start the profiling session: -```text +```sql acctg=# EXEC dbms_profiler.start_profiler('profile list_emp'); EDB-SPL Procedure successfully completed @@ -227,8 +227,9 @@ EDB-SPL Procedure successfully completed 2. Call the `list_emp` function: -```text +```sql acctg=# SELECT list_emp(); +__OUTPUT__ INFO: EMPNO ENAME INFO: ----- ------- INFO: 7369 SMITH @@ -253,7 +254,7 @@ INFO: 7934 MILLER 3. Stop the profiling session with a call to `dbms_profiler.stop_profiler`: -```text +```sql acctg=# EXEC dbms_profiler.stop_profiler; EDB-SPL Procedure successfully completed @@ -261,7 +262,7 @@ EDB-SPL Procedure successfully completed 4. Start a new session with the `dbms_profiler.start_profiler` function followed by a new comment: -```text +```sql acctg=# EXEC dbms_profiler.start_profiler('profile get_dept_name and emp_sal_trig'); @@ -270,8 +271,9 @@ EDB-SPL Procedure successfully completed 5. Invoke the `get_dept_name` function: -```text +```sql acctg=# SELECT get_dept_name(10); +__OUTPUT__ get_dept_name --------------- ACCOUNTING @@ -280,7 +282,7 @@ acctg=# SELECT get_dept_name(10); 6. Execute an `UPDATE` statement that causes a trigger to execute: -```text +```sql acctg=# UPDATE memp SET sal = 500 WHERE empno = 7902; INFO: Updating employee 7902 INFO: ..Old salary: 3000.00 @@ -292,7 +294,7 @@ UPDATE 1 7. End the profiling session and flush the performance information to the profiling tables: -```text +```sql acctg=# EXEC dbms_profiler.stop_profiler; EDB-SPL Procedure successfully completed @@ -300,8 +302,9 @@ EDB-SPL Procedure successfully completed 8. Query the `plsql_profiler_runs` table to view a list of the profiling sessions, arranged by `runid:` -```text +```sql acctg=# SELECT * FROM plsql_profiler_runs; +__OUTPUT__ runid | related_run | run_owner | run_date | run_comment | run_total_time | run_system_info | run_comment1 | spare1 @@ -319,8 +322,9 @@ acctg=# SELECT * FROM plsql_profiler_runs; 9. Query the `plsql_profiler_units` table to view the amount of time consumed by each unit (function, procedure, or trigger): -```text +```sql acctg=# SELECT * FROM plsql_profiler_units; +__OUTPUT__ runid | unit_number | unit_type | unit_owner | unit_name | unit_timestamp | total_time | spare1 | spare2 -------+-------------+-----------+--------------+---------------------------- @@ -338,10 +342,10 @@ acctg=# SELECT * FROM plsql_profiler_units; 10. Query the `plsql_profiler_rawdata` table to view a list of the wait-event counters and wait-event times: -```text +```sql acctg=# SELECT runid, sourcecode, func_oid, line_number, exec_count, tuples_returned, time_total FROM plsql_profiler_rawdata; - +__OUTPUT__ runid | sourcecode | func_oid | line_number | exec_count | tuples_returned | time_total -------+-----------------------------------------------------------------+--- @@ -488,8 +492,9 @@ tuples_returned, time_total FROM plsql_profiler_rawdata; 11. Query the `plsql_profiler_data` view to review a subset of the information found in `plsql_profiler_rawdata` table: -```text +```sql acctg=# SELECT * FROM plsql_profiler_data; +__OUTPUT__ runid | unit_number | line# | total_occur | total_time | min_time | max_time | spare1 | spare2 | spare3 | spare4 -------+-------------+-------+-------------+------------+----------+--------- diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/12_dbms_random.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/12_dbms_random.mdx index 69dadd17dfc..094439d2b4e 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/12_dbms_random.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/12_dbms_random.mdx @@ -25,7 +25,7 @@ The `DBMS_RANDOM` package provides methods to generate random values. The proced The `INITIALIZE` procedure initializes the `DBMS_RANDOM` package with a seed value. The signature is: -```text +```sql INITIALIZE( IN INTEGER) ``` @@ -41,7 +41,7 @@ This procedure is deprecated. It is included for backward compatibility. The following code shows a call to the `INITIALIZE` procedure that initializes the `DBMS_RANDOM` package with the seed value 6475: -```text +```sql DBMS_RANDOM.INITIALIZE(6475); ``` @@ -49,7 +49,7 @@ DBMS_RANDOM.INITIALIZE(6475); The `NORMAL` function returns a random number of type `NUMBER`. The signature is: -```text +```sql NUMBER NORMAL() ``` @@ -63,7 +63,7 @@ The `NORMAL` function returns a random number of type `NUMBER`. The signature is The following code shows a call to the `NORMAL` function: -```text +```sql x:= DBMS_RANDOM.NORMAL(); ``` @@ -71,7 +71,7 @@ x:= DBMS_RANDOM.NORMAL(); The `RANDOM` function returns a random `INTEGER` value that is greater than or equal to -2 ^31 and less than 2 ^31. The signature is: -```text +```sql INTEGER RANDOM() ``` @@ -87,7 +87,7 @@ This function is deprecated. It is included for backward compatibility. The following code shows a call to the `RANDOM` function. The call returns a random number: -```text +```sql x := DBMS_RANDOM.RANDOM(); ``` @@ -95,7 +95,7 @@ x := DBMS_RANDOM.RANDOM(); The first form of the `SEED` procedure resets the seed value for the `DBMS_RANDOM` package with an `INTEGER` value. The `SEED` procedure is available in two forms. The signature of the first form is: -```text +```sql SEED( IN INTEGER) ``` @@ -109,7 +109,7 @@ SEED( IN INTEGER) The following code shows a call to the `SEED` procedure. The call sets the seed value at 8495. -```text +```sql DBMS_RANDOM.SEED(8495); ``` @@ -117,7 +117,7 @@ DBMS_RANDOM.SEED(8495); The second form of the `SEED` procedure resets the seed value for the `DBMS_RANDOM` package with a string value. The `SEED` procedure is available in two forms. The signature of the second form is: -```text +```sql SEED( IN VARCHAR2) ``` @@ -131,7 +131,7 @@ SEED( IN VARCHAR2) The following code shows a call to the `SEED` procedure. The call sets the seed value to `abc123`. -```text +```sql DBMS_RANDOM.SEED('abc123'); ``` @@ -139,7 +139,7 @@ DBMS_RANDOM.SEED('abc123'); The `STRING` function returns a random `VARCHAR2` string in a user-specified format. The signature of the `STRING` function is: -```text +```sql VARCHAR2 STRING( IN CHAR, IN NUMBER) ``` @@ -169,7 +169,7 @@ The `STRING` function returns a random `VARCHAR2` string in a user-specified for The following code shows a call to the `STRING` function. The call returns a random alphanumeric character string that is 10 characters long. -```text +```sql x := DBMS_RANDOM.STRING('X', 10); ``` @@ -177,7 +177,7 @@ x := DBMS_RANDOM.STRING('X', 10); The `TERMINATE` procedure has no effect. The signature is: -```text +```sql TERMINATE ``` @@ -187,7 +187,7 @@ The `TERMINATE` procedure is deprecated. The procedure is supported for compatib The `VALUE` function returns a random `NUMBER` that is greater than or equal to 0 and less than 1, with 38-digit precision. The `VALUE` function has two forms. The signature of the first form is: -```text +```sql NUMBER VALUE() ``` @@ -201,7 +201,7 @@ The `VALUE` function returns a random `NUMBER` that is greater than or equal to The following code shows a call to the `VALUE` function. The call returns a random `NUMBER`: -```text +```sql x := DBMS_RANDOM.VALUE(); ``` @@ -209,7 +209,7 @@ x := DBMS_RANDOM.VALUE(); The `VALUE` function returns a random `NUMBER` with a value that is between boundaries that you specify. The `VALUE` function has two forms. The signature of the second form is: -```text +```sql NUMBER VALUE( IN NUMBER, IN NUMBER) ``` @@ -231,6 +231,6 @@ The `VALUE` function returns a random `NUMBER` with a value that is between boun The following code shows a call to the `VALUE` function. The call returns a random `NUMBER` with a value that is greater than or equal to 1 and less than 100: -```text +```sql x := DBMS_RANDOM.VALUE(1, 100); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/13_dbms_redact.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/13_dbms_redact.mdx index 6e789a0f73c..a58136a25e9 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/13_dbms_redact.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/13_dbms_redact.mdx @@ -156,7 +156,7 @@ The following table shows the `regexp_match_parameter` values that you can use d The `add_policy` procedure creates a new data redaction policy for a table. -```text +```sql PROCEDURE add_policy ( IN VARCHAR2 DEFAULT NULL, IN VARCHAR2, @@ -250,7 +250,7 @@ PROCEDURE add_policy ( This example shows how to create a policy and use full redaction for values in the `payment_details_tab` table `customer id` column. -```text +```sql edb=# CREATE TABLE payment_details_tab ( customer_id NUMBER NOT NULL, card_string VARCHAR2(19) NOT NULL); @@ -285,11 +285,12 @@ END; Redacted Result: -```text +```sql edb=# \c edb redact_user You are now connected to database "edb" as user "redact_user". edb=> select customer_id from payment_details_tab order by 1; +__OUTPUT__ customer_id ------------- 0 @@ -301,7 +302,7 @@ edb=> select customer_id from payment_details_tab order by 1; The `alter_policy` procedure alters or modifies an existing data redaction policy for a table. -```text +```sql PROCEDURE alter_policy ( IN VARCHAR2 DEFAULT NULL, IN VARCHAR2, @@ -395,7 +396,7 @@ PROCEDURE alter_policy ( This example shows how to alter a policy using partial redaction for values in the `payment_details_tab` table `card_string` (usually a credit card number) column. -```text +```sql \c edb base _user BEGIN @@ -412,10 +413,11 @@ END; Redacted Result: -```text +```sql edb=# \c - redact_user You are now connected to database "edb" as user "redact_user". edb=> SELECT * FROM payment_details_tab; +__OUTPUT__ customer_id | card_string -------------+--------------------- 0 | ****-****-****-1234 @@ -427,7 +429,7 @@ edb=> SELECT * FROM payment_details_tab; The `disable_policy` procedure disables an existing data redaction policy. -```text +```sql PROCEDURE disable_policy ( IN VARCHAR2 DEFAULT NULL, IN VARCHAR2, @@ -453,7 +455,7 @@ PROCEDURE disable_policy ( This example shows how to disable a policy. -```text +```sql \c edb base_user BEGIN @@ -470,7 +472,7 @@ Redacted Result: Data is no longer redacted after disabling a policy. The `enable_policy` procedure enables the previously disabled data redaction policy. -```text +```sql PROCEDURE enable_policy ( IN VARCHAR2 DEFAULT NULL, IN VARCHAR2, @@ -496,7 +498,7 @@ PROCEDURE enable_policy ( This example shows how to enable a policy. -```text +```sql \c edb base_user BEGIN @@ -513,7 +515,7 @@ Redacted Result: Data is redacted after enabling a policy. The `drop_policy` procedure drops a data redaction policy by removing the masking policy from a table. -```text +```sql PROCEDURE drop_policy ( IN VARCHAR2 DEFAULT NULL, IN VARCHAR2, @@ -539,7 +541,7 @@ PROCEDURE drop_policy ( This example shows how to drop a policy. -```text +```sql \c edb base_user BEGIN @@ -556,7 +558,7 @@ Redacted Result: The server drops the specified policy. The `update_full_redaction_values` procedure updates the default displayed values for a data redaction policy. You can view these default values using the `redaction_values_for_type_full` view that uses the full redaction type. -```TEXT +```sql PROCEDURE update_full_redaction_values ( IN NUMBER DEFAULT NULL, IN FLOAT4 DEFAULT NULL, @@ -632,13 +634,14 @@ PROCEDURE update_full_redaction_values ( This example shows how to update the full redaction values. Before updating the values, you can view the default values using the `redaction_values_for_type_full` view. -```text +```sql edb=# \x Expanded display is on. edb=# SELECT number_value, char_value, varchar_value, date_value, timestamp_value, timestamp_with_time_zone_value, blob_value, clob_value FROM redaction_values_for_type_full; +__OUTPUT__ -[ RECORD 1 ]------------------+-------------------------- number_value | 0 char_value | @@ -653,7 +656,7 @@ clob_value | [redacted] Update the default values for full redaction type. The `NULL` values are ignored. -```text +```sql \c edb base_user edb=# BEGIN @@ -671,12 +674,13 @@ END; You can now see the updated values using the `redaction_values_for_type_full` view. -```text +```sql EDB-SPL Procedure successfully completed edb=# SELECT number_value, char_value, varchar_value, date_value, timestamp_value, timestamp_with_time_zone_value, blob_value, clob_value FROM redaction_values_for_type_full; +__OUTPUT__ -[ RECORD 1 ]------------------+--------------------------------------- number_value | 9999999 char_value | Z @@ -691,11 +695,12 @@ clob_value | NEW REDACTED VALUE Redacted Result: -```text +```sql edb=# \c edb redact_user You are now connected to database "edb" as user "redact_user". edb=> select * from payment_details_tab order by 1; +__OUTPUT__ customer_id | card_string -------------+------------- 9999999 | V diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/14_dbms_rls.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/14_dbms_rls.mdx index 9be05914a1d..d89c00bb896 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/14_dbms_rls.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/14_dbms_rls.mdx @@ -55,7 +55,7 @@ Once you create policies, you can view them in the catalog views compatible with The `SYS_CONTEXT` function is often used with `DBMS_RLS`. The signature is: -```text +```sql SYS_CONTEXT(, ) ``` @@ -77,14 +77,14 @@ Where: The examples used to illustrate the `DBMS_RLS` package are based on a modified copy of the sample `emp` table provided with EDB Postgres Advanced Server along with a role named `salesmgr` that is granted all privileges on the table. You can create the modified copy of the `emp` table named `vpemp` and the `salesmgr` role as follows: -```text +```sql CREATE TABLE public.vpemp AS SELECT empno, ename, job, sal, comm, deptno FROM emp; ALTER TABLE vpemp ADD authid VARCHAR2(12); UPDATE vpemp SET authid = 'researchmgr' WHERE deptno = 20; UPDATE vpemp SET authid = 'salesmgr' WHERE deptno = 30; SELECT * FROM vpemp; - +__OUTPUT__ empno | ename | job | sal | comm | deptno | authid -------+--------+-----------+---------+---------+--------+------------- 7782 | CLARK | MANAGER | 2450.00 | | 10 | @@ -113,7 +113,7 @@ The `ADD_POLICY` procedure creates a new policy by associating a policy function You must be a superuser to execute this procedure. -```text +```sql ADD_POLICY( VARCHAR2, VARCHAR2, VARCHAR2, VARCHAR2, VARCHAR2 @@ -218,7 +218,7 @@ ADD_POLICY( VARCHAR2, VARCHAR2, This example uses the following policy function: -```text +```sql CREATE OR REPLACE FUNCTION verify_session_user ( p_schema VARCHAR2, p_object VARCHAR2 @@ -239,7 +239,7 @@ This limits the effect of the SQL command to those rows where the content of the The following anonymous block calls the `ADD_POLICY` procedure to create a policy named `secure_update`. The policy applies to the `vpemp` table using the function `verify_session_user` whenever an `INSERT`, `UPDATE`, or `DELETE` SQL command is given referencing the `vpemp` table. -```text +```sql DECLARE v_object_schema VARCHAR2(30) := 'public'; v_object_name VARCHAR2(30) := 'vpemp'; @@ -265,11 +265,12 @@ END; After successfully creating the policy, a terminal session is started by user `salesmgr`. The following query shows the content of the `vpemp` table: -```text +```sql edb=# \c edb salesmgr Password for user salesmgr: You are now connected to database "edb" as user "salesmgr". edb=> SELECT * FROM vpemp; +__OUTPUT__ empno | ename | job | sal | comm | deptno | authid -------+--------+-----------+---------+---------+--------+------------- 7782 | CLARK | MANAGER | 2450.00 | | 10 | @@ -291,7 +292,7 @@ edb=> SELECT * FROM vpemp; An unqualified `UPDATE` command (no `WHERE` clause) is issued by the `salesmgr` user: -```text +```sql edb=> UPDATE vpemp SET comm = sal * .75; UPDATE 6 ``` @@ -300,8 +301,9 @@ Instead of updating all rows in the table, the policy restricts the effect of th The following query shows that the `comm` column was changed only for those rows where `authid` contains `salesmgr`. All other rows are unchanged. -```text +```sql edb=> SELECT * FROM vpemp; +__OUTPUT__ empno | ename | job | sal | comm | deptno | authid -------+--------+-----------+---------+---------+--------+------------- 7782 | CLARK | MANAGER | 2450.00 | | 10 | @@ -323,7 +325,7 @@ edb=> SELECT * FROM vpemp; Furthermore, since the `update_check` parameter was set to `TRUE` in the `ADD_POLICY` procedure, the following `INSERT` command throws an exception. The value given for the `authid` column, `researchmgr`, doesn't match the session user (`salesmgr`) and hence fails the policy. -```text +```sql edb=> INSERT INTO vpemp VALUES (9001,'SMITH','ANALYST',3200.00,NULL,20, 'researchmgr'); ERROR: policy with check option violation @@ -334,7 +336,7 @@ If `update_check` is set to `FALSE`, the preceding `INSERT` command succeeds. This example uses the `sec_relevant_cols` parameter to apply a policy only when certain columns are referenced in the SQL command. The following policy function is used for this example, which selects rows where the employee salary is less than `2000`. -```text +```sql CREATE OR REPLACE FUNCTION sal_lt_2000 ( p_schema VARCHAR2, p_object VARCHAR2 @@ -348,7 +350,7 @@ END The policy is created so that it's enforced only if a `SELECT` command includes columns `sal` or `comm`: -```text +```sql DECLARE v_object_schema VARCHAR2(30) := 'public'; v_object_name VARCHAR2(30) := 'vpemp'; @@ -372,8 +374,9 @@ END; If a query doesn't reference columns `sal` or `comm`, then the policy isn't applied. The following query returns all 14 rows of table `vpemp`: -```text +```sql edb=# SELECT empno, ename, job, deptno, authid FROM vpemp; +__OUTPUT__ empno | ename | job | deptno | authid -------+--------+-----------+--------+------------- 7782 | CLARK | MANAGER | 10 | @@ -395,8 +398,9 @@ edb=# SELECT empno, ename, job, deptno, authid FROM vpemp; If the query references the `sal` or `comm` columns, then the policy is applied to the query, eliminating any rows where `sal` is greater than or equal to `2000`: -```text +```sql edb=# SELECT empno, ename, job, sal, comm, deptno, authid FROM vpemp; +__OUTPUT__ empno | ename | job | sal | comm | deptno | authid -------+--------+----------+---------+---------+--------+------------- 7934 | MILLER | CLERK | 1300.00 | | 10 | @@ -416,7 +420,7 @@ The `DROP_POLICY` procedure deletes an existing policy. The `DROP_POLICY` proced You must be a superuser to execute this procedure. -```text +```sql DROP_POLICY( VARCHAR2, VARCHAR2, VARCHAR2) ``` @@ -439,7 +443,7 @@ DROP_POLICY( VARCHAR2, VARCHAR2, This example deletes policy `secure_update` on table `public.vpemp`: -```text +```sql DECLARE v_object_schema VARCHAR2(30) := 'public'; v_object_name VARCHAR2(30) := 'vpemp'; @@ -459,7 +463,7 @@ The `ENABLE_POLICY` procedure enables or disables an existing policy on the spec You must be a superuser to execute this procedure. -```text +```sql ENABLE_POLICY( VARCHAR2, VARCHAR2, VARCHAR2, BOOLEAN) ``` @@ -486,7 +490,7 @@ ENABLE_POLICY( VARCHAR2, VARCHAR2, This example disables policy `secure_update` on table `public.vpemp`: -```text +```sql DECLARE v_object_schema VARCHAR2(30) := 'public'; v_object_name VARCHAR2(30) := 'vpemp'; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/02_create_job.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/02_create_job.mdx index 44b0008817d..a0f804d815f 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/02_create_job.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/02_create_job.mdx @@ -4,7 +4,7 @@ title: "CREATE_JOB" Use the `CREATE_JOB` procedure to create a job. The procedure comes in two forms. The first form of the procedure specifies a schedule in the job definition as well as a job action to invoke when the job executes: -```text +```sql CREATE_JOB( IN VARCHAR2, IN VARCHAR2, @@ -21,7 +21,7 @@ CREATE_JOB( The second form uses a job schedule to specify the schedule on which the job executes and specifies the name of a program to execute when the job runs: -```text +```sql CREATE_JOB( IN VARCHAR2, IN VARCHAR2, @@ -94,7 +94,7 @@ CREATE_JOB( This example shows a call to the `CREATE_JOB` procedure: -```text +```sql EXEC DBMS_SCHEDULER.CREATE_JOB ( job_name => 'update_log', diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/03_create_program.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/03_create_program.mdx index 44fefde00d5..b42cfd6ebc4 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/03_create_program.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/03_create_program.mdx @@ -4,7 +4,7 @@ title: "CREATE_PROGRAM" Use the `CREATE_PROGRAM` procedure to create a `DBMS_SCHEDULER` program. The signature is: -```text +```sql CREATE_PROGRAM( IN VARCHAR2, IN VARCHAR2, @@ -53,7 +53,7 @@ CREATE_PROGRAM( The following call to the `CREATE_PROGRAM` procedure creates a program named `update_log`: -```text +```sql EXEC DBMS_SCHEDULER.CREATE_PROGRAM ( program_name => 'update_log', diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/04_create_schedule.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/04_create_schedule.mdx index 55369b65d12..0a58ee0be6d 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/04_create_schedule.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/04_create_schedule.mdx @@ -4,7 +4,7 @@ title: "CREATE_SCHEDULE" Use the `CREATE_SCHEDULE` procedure to create a job schedule. The signature of the `CREATE_SCHEDULE` procedure is: -```text +```sql CREATE_SCHEDULE( IN VARCHAR2, IN TIMESTAMP WITH TIME ZONE DEFAULT NULL, @@ -45,7 +45,7 @@ CREATE_SCHEDULE( This code fragment calls `CREATE_SCHEDULE` to create a schedule named `weeknights_at_5`: -```text +```sql EXEC DBMS_SCHEDULER.CREATE_SCHEDULE ( schedule_name => 'weeknights_at_5', diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/05_define_program_argument.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/05_define_program_argument.mdx index 97f147f4a50..937b6ece8e1 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/05_define_program_argument.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/05_define_program_argument.mdx @@ -4,7 +4,7 @@ title: "DEFINE_PROGRAM_ARGUMENT" Use the `DEFINE_PROGRAM_ARGUMENT` procedure to define a program argument. The `DEFINE_PROGRAM_ARGUMENT` procedure comes in two forms. The first form defines an argument with a default value: -```text +```sql DEFINE_PROGRAM_ARGUMENT( IN VARCHAR2, IN PLS_INTEGER, @@ -16,7 +16,7 @@ DEFINE_PROGRAM_ARGUMENT( The second form defines an argument without a default value: -```text +```sql DEFINE_PROGRAM_ARGUMENT( IN VARCHAR2, IN PLS_INTEGER, @@ -55,7 +55,7 @@ DEFINE_PROGRAM_ARGUMENT( This code fragment uses the `DEFINE_PROGRAM_ARGUMENT` procedure to define the first and second arguments in a program named `add_emp`: -```text +```sql EXEC DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT( program_name => 'add_emp', diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/06_dbms_scheduler_disable.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/06_dbms_scheduler_disable.mdx index 850d68ee9a7..dfc88872f4d 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/06_dbms_scheduler_disable.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/06_dbms_scheduler_disable.mdx @@ -6,7 +6,7 @@ title: "DISABLE" Use the `DISABLE` procedure to disable a program or a job. The signature of the `DISABLE` procedure is: -```text +```sql DISABLE( IN VARCHAR2, IN BOOLEAN DEFAULT FALSE, @@ -33,6 +33,6 @@ DISABLE( The following call to the `DISABLE` procedure disables a program named `update_emp`: -```text +```sql DBMS_SCHEDULER.DISABLE('update_emp'); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/07_drop_job.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/07_drop_job.mdx index 887171481b0..f350600f1d6 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/07_drop_job.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/07_drop_job.mdx @@ -4,7 +4,7 @@ title: "DROP_JOB" Use the `DROP_JOB` procedure to drop a job, drop any arguments that belong to the job, and eliminate any future job executions. The signature of the procedure is: -```text +```sql DROP_JOB( IN VARCHAR2, IN BOOLEAN DEFAULT FALSE, @@ -36,6 +36,6 @@ DROP_JOB( The following call to `DROP_JOB` drops a job named `update_log`: -```text +```sql DBMS_SCHEDULER.DROP_JOB('update_log'); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/08_drop_program.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/08_drop_program.mdx index 1e0641e25dd..cf855edf68a 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/08_drop_program.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/08_drop_program.mdx @@ -4,7 +4,7 @@ title: "DROP_PROGRAM" The `DROP_PROGRAM` procedure drops a program. The signature of the `DROP_PROGRAM` procedure is: -```text +```sql DROP_PROGRAM( IN VARCHAR2, IN BOOLEAN DEFAULT FALSE) @@ -30,6 +30,6 @@ DROP_PROGRAM( The following call to `DROP_PROGRAM` drops a job named `update_emp`: -```text +```sql DBMS_SCHEDULER.DROP_PROGRAM('update_emp'); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/09_drop_program_argument.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/09_drop_program_argument.mdx index 70a622bd4e1..5f078303f8d 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/09_drop_program_argument.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/09_drop_program_argument.mdx @@ -4,7 +4,7 @@ title: "DROP_PROGRAM_ARGUMENT" Use the `DROP_PROGRAM_ARGUMENT` procedure to drop a program argument. The `DROP_PROGRAM_ARGUMENT` procedure comes in two forms. The first form uses an argument position to specify the argument to drop: -```text +```sql DROP_PROGRAM_ARGUMENT( IN VARCHAR2, IN PLS_INTEGER) @@ -12,7 +12,7 @@ DROP_PROGRAM_ARGUMENT( The second form takes the argument name: -```text +```sql DROP_PROGRAM_ARGUMENT( IN VARCHAR2, IN VARCHAR2) @@ -36,12 +36,12 @@ DROP_PROGRAM_ARGUMENT( The following call to `DROP_PROGRAM_ARGUMENT` drops the first argument in the `update_emp` program: -```text +```sql DBMS_SCHEDULER.DROP_PROGRAM_ARGUMENT('update_emp', 1); ``` The following call to `DROP_PROGRAM_ARGUMENT` drops an argument named `emp_name`: -```text +```sql DBMS_SCHEDULER.DROP_PROGRAM_ARGUMENT(update_emp', 'emp_name'); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/10_drop_schedule.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/10_drop_schedule.mdx index 6d44baf91eb..57f66bf30a4 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/10_drop_schedule.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/10_drop_schedule.mdx @@ -4,7 +4,7 @@ title: "DROP_SCHEDULE" Use the `DROP_SCHEDULE` procedure to drop a schedule. The signature is: -```text +```sql DROP_SCHEDULE( IN VARCHAR2, IN BOOLEAN DEFAULT FALSE) @@ -27,7 +27,7 @@ DROP_SCHEDULE( The following call to `DROP_SCHEDULE` drops a schedule named `weeknights_at_5`: -```text +```sql DBMS_SCHEDULER.DROP_SCHEDULE('weeknights_at_5', TRUE); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/11_dbms_scheduler_enable.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/11_dbms_scheduler_enable.mdx index 234996c5353..b775d4fd579 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/11_dbms_scheduler_enable.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/11_dbms_scheduler_enable.mdx @@ -8,7 +8,7 @@ Use the `ENABLE` procedure to enable a disabled program or job. The signature of the `ENABLE` procedure is: -```text +```sql ENABLE( IN VARCHAR2, IN VARCHAR2 DEFAULT 'STOP_ON_FIRST_ERROR') @@ -30,6 +30,6 @@ ENABLE( The following call to `DBMS_SCHEDULER.ENABLE` enables the `update_emp` program: -```text +```sql DBMS_SCHEDULER.ENABLE('update_emp'); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/12_evaluate_calendar_string.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/12_evaluate_calendar_string.mdx index a81aa91f8f6..0902ab97be2 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/12_evaluate_calendar_string.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/12_evaluate_calendar_string.mdx @@ -6,7 +6,7 @@ Use the `EVALUATE_CALENDAR_STRING` procedure to evaluate the `repeat_interval` v The signature of the `EVALUATE_CALENDAR_STRING` procedure is: -```text +```sql EVALUATE_CALENDAR_STRING( IN VARCHAR2, IN TIMESTAMP WITH TIME ZONE, @@ -38,7 +38,7 @@ EVALUATE_CALENDAR_STRING( This example evaluates a calendar string and returns the first date and time that the schedule will execute after June 15, 2013: -```text +```sql DECLARE result TIMESTAMP; BEGIN diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/13_run_job.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/13_run_job.mdx index fed4e087d65..6b3768424d5 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/13_run_job.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/13_run_job.mdx @@ -4,7 +4,7 @@ title: "RUN_JOB" Use the `RUN_JOB` procedure to execute a job immediately. The signature of the `RUN_JOB` procedure is: -```text +```sql RUN_JOB( IN VARCHAR2, IN BOOLEAN DEFAULT TRUE @@ -24,7 +24,7 @@ RUN_JOB( The following call to `RUN_JOB` executes a job named `update_log`: -```text +```sql DBMS_SCHEDULER.RUN_JOB('update_log', TRUE); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/14_set_job_argument_value.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/14_set_job_argument_value.mdx index 0ba1fdc84e5..cd0c857cfc7 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/14_set_job_argument_value.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/14_set_job_argument_value.mdx @@ -4,7 +4,7 @@ title: "SET_JOB_ARGUMENT_VALUE" Use the `SET_JOB_ARGUMENT_VALUE` procedure to specify a value for an argument. The `SET_JOB_ARGUMENT_VALUE` procedure comes in two forms. The first form specifies the argument to modify by position: -```text +```sql SET_JOB_ARGUMENT_VALUE( IN VARCHAR2, IN PLS_INTEGER, @@ -13,7 +13,7 @@ SET_JOB_ARGUMENT_VALUE( The second form uses an argument name to specify the argument to modify: -```text +```sql SET_JOB_ARGUMENT_VALUE( IN VARCHAR2, IN VARCHAR2, @@ -44,12 +44,12 @@ Argument values set by the `SET_JOB_ARGUMENT_VALUE` procedure override any value This example assigns a value of `30` to the first argument in the `update_emp` job: -```text +```sql DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE('update_emp', 1, '30'); ``` This example sets the `emp_name` argument to `SMITH`: -```text +```sql DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE('update_emp', 'emp_name', 'SMITH'); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/index.mdx index 9d0372a90e5..1ced38788ce 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/15_dbms_scheduler/index.mdx @@ -35,7 +35,7 @@ The `DBMS_SCHEDULER` package depends on the pgAgent service. You must have a pgA Before using `DBMS_SCHEDULER`, a database superuser must create the catalog tables in which the `DBMS_SCHEDULER` programs, schedules, and jobs are stored. Use the psql client to connect to the database, and invoke the command: -```text +```sql CREATE EXTENSION dbms_scheduler; ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/16_dbms_session.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/16_dbms_session.mdx index b0f60e0b6db..4cc6a0b1e93 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/16_dbms_session.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/16_dbms_session.mdx @@ -21,7 +21,7 @@ EDB Postgres Advanced Server's implementation of `DBMS_SESSION` is a partial imp The `SET_ROLE` procedure sets the current session user to the role specified in `role_cmd`. After invoking the `SET_ROLE` procedure, the current session uses the permissions assigned to the specified role. The signature of the procedure is: -```text +```sql SET_ROLE() ``` @@ -37,6 +37,6 @@ The `SET_ROLE` procedure appends the value specified for `role_cmd` to the `SET This call to the `SET_ROLE` procedure invokes the `SET ROLE` command to set the identity of the current session user to manager: -```text +```sql edb=# exec DBMS_SESSION.SET_ROLE('manager'); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/01_bind_variable.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/01_bind_variable.mdx index e6f898d2b67..8c4527adf87 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/01_bind_variable.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/01_bind_variable.mdx @@ -4,7 +4,7 @@ title: "BIND_VARIABLE" The `BIND_VARIABLE` procedure associates a value with an `IN` or `IN OUT` bind variable in a SQL command. -```text +```sql BIND_VARIABLE( NUMBER, VARCHAR2, { BLOB | CLOB | DATE | FLOAT | INTEGER | NUMBER | TIMESTAMP | VARCHAR2 } [, NUMBER ]) @@ -32,7 +32,7 @@ BIND_VARIABLE( NUMBER, VARCHAR2, The following anonymous block uses bind variables to insert a row into the `emp` table. -```text +```sql DECLARE curid NUMBER; v_sql VARCHAR2(150) := 'INSERT INTO emp VALUES ' || diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/02_bind_variable_char.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/02_bind_variable_char.mdx index 73ac16d0365..c2b1c0fdd10 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/02_bind_variable_char.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/02_bind_variable_char.mdx @@ -4,7 +4,7 @@ title: "BIND_VARIABLE_CHAR" The `BIND_VARIABLE_CHAR` procedure associates a `CHAR` value with an `IN` or `IN OUT` bind variable in a SQL command. -```text +```sql BIND_VARIABLE_CHAR( NUMBER, VARCHAR2, CHAR [, NUMBER ]) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/03_bind_variable_raw.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/03_bind_variable_raw.mdx index dfd8eb974b4..f586bc17ac2 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/03_bind_variable_raw.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/03_bind_variable_raw.mdx @@ -4,7 +4,7 @@ title: "BIND_VARIABLE_RAW" The `BIND_VARIABLE_RAW` procedure associates a `RAW` value with an `IN` or `IN OUT` bind variable in a SQL command. -```text +```sql BIND_VARIABLE_RAW( NUMBER, VARCHAR2, RAW [, NUMBER ]) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/04_close_cursor.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/04_close_cursor.mdx index 3cf4e4b3bd4..a3ae7bdc9c0 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/04_close_cursor.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/04_close_cursor.mdx @@ -4,7 +4,7 @@ title: "CLOSE_CURSOR" The `CLOSE_CURSOR` procedure closes an open cursor. The resources allocated to the cursor are released and you can no longer use it. -```text +```sql CLOSE_CURSOR( IN OUT NUMBER) ``` @@ -18,7 +18,7 @@ CLOSE_CURSOR( IN OUT NUMBER) This example closes an open cursor: -```text +```sql DECLARE curid NUMBER; v_sql VARCHAR2(150); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/05_column_value.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/05_column_value.mdx index 212a763b6c5..ba441aa110b 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/05_column_value.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/05_column_value.mdx @@ -4,7 +4,7 @@ title: "COLUMN_VALUE" The `COLUMN_VALUE` procedure defines a variable to receive a value from a cursor. -```text +```sql COLUMN_VALUE( NUMBER, NUMBER, OUT { BLOB | CLOB | DATE | FLOAT | INTEGER | NUMBER | TIMESTAMP | VARCHAR2 } [, OUT NUMBER [, OUT INTEGER ]]) @@ -36,7 +36,7 @@ COLUMN_VALUE( NUMBER, NUMBER, OUT { BLOB | CLOB | DATE | F This example shows the portion of an anonymous block that receives the values from a cursor using the `COLUMN_VALUE` procedure. -```text +```sql DECLARE curid NUMBER; v_empno NUMBER(4); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/06_column_value_char.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/06_column_value_char.mdx index 857a769af32..72e6445ed61 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/06_column_value_char.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/06_column_value_char.mdx @@ -4,7 +4,7 @@ title: "COLUMN_VALUE_CHAR" The `COLUMN_VALUE_CHAR` procedure defines a variable to receive a `CHAR` value from a cursor. -```text +```sql COLUMN_VALUE_CHAR( NUMBER, NUMBER, OUT CHAR [, OUT NUMBER [, OUT INTEGER ]]) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/07_column_value_raw.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/07_column_value_raw.mdx index 3fb3868e104..e9fa9eb7b3c 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/07_column_value_raw.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/07_column_value_raw.mdx @@ -4,7 +4,7 @@ title: "COLUMN_VALUE_RAW" The `COLUMN_VALUE_RAW` procedure defines a variable to receive a `RAW` value from a cursor. -```text +```sql COLUMN_VALUE_RAW( NUMBER, NUMBER, OUT RAW [, OUT NUMBER [, OUT INTEGER ]]) ``` @@ -35,7 +35,7 @@ COLUMN_VALUE_RAW( NUMBER, NUMBER, OUT RAW The `COLUMN_VALUE_LONG` procedure returns a part of the value of a `LONG` column. -```text +```sql COLUMN_VALUE_LONG( NUMBER, NUMBER, NUMBER, NUMBER, OUT VARCHAR2, OUT INTEGER) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/08_define_column.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/08_define_column.mdx index f24904414cc..0947205936e 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/08_define_column.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/08_define_column.mdx @@ -4,7 +4,7 @@ title: "DEFINE_COLUMN" The `DEFINE_COLUMN` procedure defines a column or expression in the `SELECT` list to be returned and retrieved in a cursor. -```text +```sql DEFINE_COLUMN( NUMBER, NUMBER, { BLOB | CLOB | DATE | FLOAT | INTEGER | NUMBER | TIMESTAMP | VARCHAR2 } [, NUMBER ]) @@ -32,7 +32,7 @@ DEFINE_COLUMN( NUMBER, NUMBER, { BLOB | CLOB | DATE | FLO This example shows how the `empno`, `ename`, `hiredate`, `sal`, and `comm` columns of the `emp` table are defined with the `DEFINE_COLUMN` procedure. -```text +```sql DECLARE curid NUMBER; v_empno NUMBER(4); @@ -71,7 +71,7 @@ END; The following shows an alternative that produces the same results. The lengths of the data types are irrelevant. The `empno`, `sal`, and `comm` columns still return data equivalent to `NUMBER(4)` and `NUMBER(7,2)`, respectively, even though `v_num` is defined as `NUMBER(1)` (assuming the declarations in the `COLUMN_VALUE` procedure are of the appropriate maximum sizes). The `ename` column returns data up to 10 characters in length as defined by the `length` parameter in the `DEFINE_COLUMN` call, not by the data type declaration, `VARCHAR2(1)` declared for `v_varchar`. The actual size of the returned data is dictated by the `COLUMN_VALUE` procedure. -```text +```sql DECLARE curid NUMBER; v_num NUMBER(1); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/09_define_column_char.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/09_define_column_char.mdx index b9c7846b231..ad69e0ff1ff 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/09_define_column_char.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/09_define_column_char.mdx @@ -4,7 +4,7 @@ title: "DEFINE_COLUMN_CHAR" The `DEFINE_COLUMN_CHAR` procedure defines a `CHAR` column or expression in the `SELECT` list to be returned and retrieved in a cursor. -```text +```sql DEFINE_COLUMN_CHAR( NUMBER, NUMBER, CHAR, NUMBER) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/10_define_column_raw.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/10_define_column_raw.mdx index 8273ea8205c..5ff9ec9d4d8 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/10_define_column_raw.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/10_define_column_raw.mdx @@ -4,7 +4,7 @@ title: "DEFINE_COLUMN_RAW" The `DEFINE_COLUMN_RAW` procedure defines a `RAW` column or expression in the `SELECT` list to be returned and retrieved in a cursor. -```text +```sql DEFINE_COLUMN_RAW( NUMBER, NUMBER, RAW, NUMBER) ``` @@ -33,7 +33,7 @@ DEFINE_COLUMN_RAW( NUMBER, NUMBER, RAW, The `DEFINE_COLUMN_LONG` procedure defines a long column for a `SELECT` cursor. -```text +```sql DEFINE_COLUMN_LONG( NUMBER, NUMBER) ``` @@ -51,7 +51,7 @@ DEFINE_COLUMN_LONG( NUMBER, NUMBER) This example shows an anonymous block that defines a long column in the `SELECT` list using `DEFINE_COLUMN_LONG` procedure. It returns a part of the `LONG` column value into a variable using procedure `COLUMN_VALUE_LONG`. -```text +```sql DECLARE curid NUMBER; v_ename VARCHAR(20); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/11_describe_columns.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/11_describe_columns.mdx index c4cda36859e..906d63508e2 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/11_describe_columns.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/11_describe_columns.mdx @@ -4,7 +4,7 @@ title: "DESCRIBE_COLUMNS" The `DESCRIBE_COLUMNS` procedure describes the columns returned by a cursor. -```text +```sql DESCRIBE_COLUMNS( NUMBER, OUT NUMBER, OUT DESC_TAB); ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/12_execute.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/12_execute.mdx index 607a78530c8..27c676d0123 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/12_execute.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/12_execute.mdx @@ -4,7 +4,7 @@ title: "EXECUTE" The `EXECUTE` function executes a parsed SQL command or SPL block. -```text +```sql INTEGER EXECUTE( NUMBER) ``` @@ -22,7 +22,7 @@ The `EXECUTE` function executes a parsed SQL command or SPL block. The following anonymous block inserts a row into the `dept` table. -```text +```sql DECLARE curid NUMBER; v_sql VARCHAR2(50); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/13_execute_and_fetch.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/13_execute_and_fetch.mdx index f3f9d8c37e8..b09b45f83e7 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/13_execute_and_fetch.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/13_execute_and_fetch.mdx @@ -4,7 +4,7 @@ title: "EXECUTE_AND_FETCH" Function `EXECUTE_AND_FETCH` executes a parsed `SELECT` command and fetches one row. -```text +```sql INTEGER EXECUTE_AND_FETCH( NUMBER [, BOOLEAN ]) ``` @@ -26,7 +26,7 @@ Function `EXECUTE_AND_FETCH` executes a parsed `SELECT` command and fetches one This stored procedure uses the `EXECUTE_AND_FETCH` function to retrieve one employee using the employee’s name. An exception is thrown if the employee isn't found or more than one employee has the same name. -```text +```sql CREATE OR REPLACE PROCEDURE select_by_name( p_ename emp.ename%TYPE ) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/14_fetch_rows.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/14_fetch_rows.mdx index 5affbcaa056..54709b90a78 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/14_fetch_rows.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/14_fetch_rows.mdx @@ -4,7 +4,7 @@ title: "FETCH_ROWS" The `FETCH_ROWS` function retrieves a row from a cursor. -```text +```sql INTEGER FETCH_ROWS( NUMBER) ``` @@ -22,7 +22,7 @@ The `FETCH_ROWS` function retrieves a row from a cursor. These examples fetch the rows from the `emp` table and display the results. -```text +```sql DECLARE curid NUMBER; v_empno NUMBER(4); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/15_is_open.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/15_is_open.mdx index 422bfb5423f..fd15620abd8 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/15_is_open.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/15_is_open.mdx @@ -4,7 +4,7 @@ title: "IS_OPEN" The `IS_OPEN` function tests whether the given cursor is open. -```text +```sql BOOLEAN IS_OPEN( NUMBER) ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/16_last_row_count.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/16_last_row_count.mdx index 4c9fbec7396..3be5b15a342 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/16_last_row_count.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/16_last_row_count.mdx @@ -4,7 +4,7 @@ title: "LAST_ROW_COUNT" The `LAST_ROW_COUNT` function returns the number of rows that were currently fetched. -```text +```sql INTEGER LAST_ROW_COUNT ``` @@ -18,7 +18,7 @@ The `LAST_ROW_COUNT` function returns the number of rows that were currently fet This example uses the `LAST_ROW_COUNT` function to display the total number of rows fetched in the query. -```text +```sql DECLARE curid NUMBER; v_empno NUMBER(4); @@ -83,7 +83,7 @@ Number of rows: 14 The `LAST_ERROR_POSITION` function returns an integer value indicating the byte offset in the SQL statement text where the error occurred. The error position of the first character in the SQL statement is at `1`. -```text +```sql LAST_ERROR_POSITION RETURN INTEGER; ``` @@ -91,7 +91,7 @@ LAST_ERROR_POSITION RETURN INTEGER; This example shows an anonymous block that returns an error position with the `LAST_ERROR_POSITION` function. -```text +```sql DECLARE curid NUMBER; sql_stmt VARCHAR2(50) := 'SELECT empno FROM not_exist_table'; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/17_open_cursor.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/17_open_cursor.mdx index 7cb8cde7511..51eb3323043 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/17_open_cursor.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/17_open_cursor.mdx @@ -4,7 +4,7 @@ title: "OPEN_CURSOR" The `OPEN_CURSOR` function creates a cursor. A cursor must be used to parse and execute any dynamic SQL statement. Once a cursor is open, you can reuse it with the same or different SQL statements. You don't have to close the cursor and reopen it to reuse it. -```text +```sql INTEGER OPEN_CURSOR ``` @@ -18,7 +18,7 @@ The `OPEN_CURSOR` function creates a cursor. A cursor must be used to parse and This example creates a new cursor: -```text +```sql DECLARE curid NUMBER; v_sql VARCHAR2(150); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/18_parse.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/18_parse.mdx index 28ec4fe62bc..40430db45ad 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/18_parse.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/17_dbms_sql/18_parse.mdx @@ -4,7 +4,7 @@ title: "PARSE" The `PARSE` procedure parses a SQL command or SPL block. If the SQL command is a DDL command, it executes immediately and doesn't require that you run the `EXECUTE` function. -```text +```sql PARSE( NUMBER, VARCHAR2, NUMBER) ``` @@ -26,7 +26,7 @@ PARSE( NUMBER, VARCHAR2, NUMBER) This anonymous block creates a table named, `job`. DDL statements are executed immediately by the `PARSE` procedure and don't require a separate `EXECUTE` step. -```text +```sql DECLARE curid NUMBER; BEGIN @@ -39,7 +39,7 @@ END; The following inserts two rows into the `job` table. -```text +```sql DECLARE curid NUMBER; v_sql VARCHAR2(50); @@ -63,7 +63,7 @@ Number of rows processed: 1 This anonymous block uses the `DBMS_SQL` package to execute a block containing two `INSERT` statements. The end of the block contains a terminating semi-colon. In the prior example, each `INSERT` statement doesn't have a terminating semi-colon. -```text +```sql DECLARE curid NUMBER; v_sql VARCHAR2(100); diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx index 92d2c915812..3b97b779ba5 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx @@ -41,7 +41,7 @@ The following table lists the public variables available in the `DBMS_UTILITY` p The `LNAME_ARRAY` is for storing lists of long names including fully qualified names. -```text +```sql TYPE lname_array IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER; ``` @@ -51,7 +51,7 @@ TYPE lname_array IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER; The `UNCL_ARRAY` is for storing lists of users and names. -```text +```sql TYPE uncl_array IS TABLE OF VARCHAR2(227) INDEX BY BINARY_INTEGER; ``` @@ -67,7 +67,7 @@ The `ANALYZE_DATABASE(), ANALYZE_SCHEMA() and ANALYZE_PART_OBJECT()` procedures The syntax for the `ANALYZE` commands are: -```text +```sql ANALYZE_DATABASE( VARCHAR2 [, NUMBER [, NUMBER [, VARCHAR2 ]]]) @@ -102,7 +102,7 @@ ANALYZE_PART_OBJECT( VARCHAR2, VARCHAR2 Object types to analyze. Any combination of the following: -``` +```text [ FOR TABLE ] [ FOR ALL [ INDEXED ] COLUMNS ] [ SIZE n ] @@ -141,7 +141,7 @@ ANALYZE_PART_OBJECT( VARCHAR2, VARCHAR2 For `command_type` `C` or `E`, can be any combination of: -``` +```text [ FOR TABLE ] [ FOR ALL COLUMNS ] @@ -173,7 +173,7 @@ The `CANONICALIZE` procedure performs the following operations on an input strin - The double-quoted portions unchanged, including the double quotes - The non-double-quoted portions uppercased and enclosed in double quotes. -```text +```sql CANONICALIZE( VARCHAR2, OUT VARCHAR2, BINARY_INTEGER) ``` @@ -196,7 +196,7 @@ CANONICALIZE( VARCHAR2, OUT VARCHAR2, This procedure applies the `CANONICALIZE` procedure on its input parameter and displays the results. -```text +```sql CREATE OR REPLACE PROCEDURE canonicalize ( p_name VARCHAR2, p_length BINARY_INTEGER DEFAULT 30 @@ -246,7 +246,7 @@ Length: 15 The `COMMA_TO_TABLE` procedure converts a comma-delimited list of names into a table of names. Each entry in the list becomes a table entry. Format the names as valid identifiers. -```text +```sql COMMA_TO_TABLE( VARCHAR2, OUT BINARY_INTEGER, OUT { LNAME_ARRAY | UNCL_ARRAY }) ``` @@ -277,7 +277,7 @@ COMMA_TO_TABLE( VARCHAR2, OUT BINARY_INTEGER, This procedure uses the `COMMA_TO_TABLE` procedure to convert a list of names to a table. It then displays the table entries. -```text +```sql CREATE OR REPLACE PROCEDURE comma_to_table ( p_list VARCHAR2 ) @@ -302,7 +302,7 @@ edb.jobhist The `DB_VERSION` procedure returns the version number of the database. -```text +```sql DB_VERSION( OUT VARCHAR2, OUT VARCHAR2) ``` @@ -320,7 +320,7 @@ DB_VERSION( OUT VARCHAR2, OUT VARCHAR2) The following anonymous block displays the database version information. -```text +```sql DECLARE v_version VARCHAR2(150); v_compat VARCHAR2(150); @@ -340,7 +340,7 @@ gcc (GCC) 4.1.220080704 (Red Hat 4.1.2-48), 32-bit `EXEC_DDL_STATEMENT` executes a `DDL` command. -```text +```sql EXEC_DDL_STATEMENT( VARCHAR2) ``` @@ -354,7 +354,7 @@ EXEC_DDL_STATEMENT( VARCHAR2) The following anonymous block creates the `job` table. -```text +```sql BEGIN DBMS_UTILITY.EXEC_DDL_STATEMENT( 'CREATE TABLE job (' || @@ -366,7 +366,7 @@ END; If the `parse_string` doesn't include a valid DDL statement, EDB Postgres Advanced Server returns an error: -```text +```sql edb=#  exec dbms_utility.exec_ddl_statement('select rownum from dual'); ERROR:  EDB-20001: 'parse_string' must be a valid DDL statement ``` @@ -377,7 +377,7 @@ In this case, EDB Postgres Advanced Server's behavior differs from Oracle's. Ora The `FORMAT_CALL_STACK` function returns the formatted contents of the current call stack. -```text +```sql DBMS_UTILITY.FORMAT_CALL_STACK return VARCHAR2 ``` @@ -388,7 +388,7 @@ You can use this function in a stored procedure, function, or package to return The `GET_CPU_TIME` function returns the CPU time in hundredths of a second from some arbitrary point in time. -```text +```sql NUMBER GET_CPU_TIME ``` @@ -402,9 +402,9 @@ The `GET_CPU_TIME` function returns the CPU time in hundredths of a second from This `SELECT` command retrieves the current CPU time, which is 603 hundredths of a second or .0603 seconds. -```text +```sql SELECT DBMS_UTILITY.GET_CPU_TIME FROM DUAL; - +__OUTPUT__ get_cpu_time -------------- 603 @@ -414,7 +414,7 @@ get_cpu_time The `GET_DEPENDENCY` procedure lists the objects that depend on the specified object. `GET_DEPENDENCY` doesn't show dependencies for functions or procedures. -```text +```sql GET_DEPENDENCY( VARCHAR2, VARCHAR2, VARCHAR2) ``` @@ -437,11 +437,11 @@ GET_DEPENDENCY( VARCHAR2, VARCHAR2, The following anonymous block finds dependencies on the `EMP` table: -```text +```sql BEGIN DBMS_UTILITY.GET_DEPENDENCY('TABLE','public','EMP'); END; - +__OUTPUT__ DEPENDENCIES ON public.EMP ------------------------------------------------------------------ *TABLE public.EMP() @@ -458,7 +458,7 @@ DEPENDENCIES ON public.EMP The `GET_HASH_VALUE` function computes a hash value for a given string. -```text +```sql NUMBER GET_HASH_VALUE( VARCHAR2, NUMBER, NUMBER) ``` @@ -485,7 +485,7 @@ The `GET_HASH_VALUE` function computes a hash value for a given string. The following anonymous block creates a table of hash values using the `ename` column of the `emp` table and then displays the key along with the hash value. The hash values start at 100 with a maximum of 1024 distinct values. -```text +```sql DECLARE v_hash NUMBER; TYPE hash_tab IS TABLE OF NUMBER INDEX BY VARCHAR2(10); @@ -522,7 +522,7 @@ MILLER 148 The `GET_PARAMETER_VALUE` procedure retrieves database initialization parameter settings. -```text +```sql BINARY_INTEGER GET_PARAMETER_VALUE( VARCHAR2, OUT INTEGER, OUT VARCHAR2) ``` @@ -549,7 +549,7 @@ The `GET_PARAMETER_VALUE` procedure retrieves database initialization parameter The following anonymous block shows the values of two initialization parameters. -```text +```sql DECLARE v_intval INTEGER; v_strval VARCHAR2(80); @@ -568,7 +568,7 @@ client_encoding: SQL_ASCII The `GET_TIME` function returns the current time in hundredths of a second. -```text +```sql
) ``` @@ -37,7 +37,7 @@ When specifying a hint that applies to a table in a view, give the view and tabl A view named `tx` is created from the three-table join of `pgbench_history`, `pgbench_branches`, and `pgbench_accounts`, shown in the last example of [Joining relations hints](04_joining_relations_hints/#joining_relations_hints). -```text +```sql CREATE VIEW tx AS SELECT h.mtime, h.delta, b.bid, a.aid FROM pgbench_history h, pgbench_branches b, pgbench_accounts a WHERE h.bid = b.bid AND h.aid = a.aid; @@ -45,9 +45,9 @@ a.aid; The query plan produced by selecting from this view is: -```text +```sql EXPLAIN SELECT * FROM tx; - +__OUTPUT__ QUERY PLAN ----------------------------------------------------------------------------- ----------- @@ -65,9 +65,9 @@ EXPLAIN SELECT * FROM tx; The same hints that were applied to this join at the end of [Joining relations hints](04_joining_relations_hints/#joining_relations_hints) can be applied to the view: -```text +```sql EXPLAIN SELECT /*+ USE_MERGE(tx.h tx.b) USE_HASH(tx.a) */ * FROM tx; - +__OUTPUT__ QUERY PLAN ----------------------------------------------------------------------------- --------------------- @@ -89,10 +89,10 @@ EXPLAIN SELECT /*+ USE_MERGE(tx.h tx.b) USE_HASH(tx.a) */ * FROM tx; In addition to applying hints to tables in stored views, you can apply hints to tables in subqueries as shown by this example. In this query on the sample application `emp` table, employees and their managers are listed by joining the `emp` table with a subquery of the `emp` table identified by the alias `b`: -```text +```sql SELECT a.empno, a.ename, b.empno "mgr empno", b.ename "mgr ename" FROM emp a, (SELECT * FROM emp) b WHERE a.mgr = b.empno; - +__OUTPUT__ empno | ename | mgr empno | mgr ename -------+--------+-----------+----------- 7369 | SMITH | 7902 | FORD @@ -113,10 +113,10 @@ SELECT a.empno, a.ename, b.empno "mgr empno", b.ename "mgr ename" FROM emp a, This code shows the plan chosen by the query planner: -```text +```sql EXPLAIN SELECT a.empno, a.ename, b.empno "mgr empno", b.ename "mgr ename" FROM emp a, (SELECT * FROM emp) b WHERE a.mgr = b.empno; - +__OUTPUT__ QUERY PLAN ----------------------------------------------------------------- Hash Join (cost=1.32..2.64 rows=13 width=22) @@ -129,11 +129,11 @@ FROM emp a, (SELECT * FROM emp) b WHERE a.mgr = b.empno; You can apply a hint to the `emp` table in the subquery to perform an index scan on index `emp_pk` instead of a table scan. Note the difference in the query plans. -```text +```sql EXPLAIN SELECT /*+ INDEX(b.emp emp_pk) */ a.empno, a.ename, b.empno "mgr empno", b.ename "mgr ename" FROM emp a, (SELECT * FROM emp) b WHERE a.mgr = b.empno; - +__OUTPUT__ QUERY PLAN --------------------------------------------------------------------------- Merge Join (cost=4.17..13.11 rows=13 width=22) diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/06_using_the_append_optimizer_hint.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/06_using_the_append_optimizer_hint.mdx index 4ceefed7c4c..87c2dc4c850 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/06_using_the_append_optimizer_hint.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/06_using_the_append_optimizer_hint.mdx @@ -13,20 +13,20 @@ By default, EDB Postgres Advanced Server adds new data into the first available The syntax is: -```text +```sql /*+APPEND*/ ``` For example, the following command, compatible with Oracle databases, instructs the server to append the data in the `INSERT` statement to the end of the `sales` table: -```text +```sql INSERT /*+APPEND*/ INTO sales VALUES (10, 10, '01-Mar-2011', 10, 'OR'); ``` EDB Postgres Advanced Server supports the `APPEND` hint when adding multiple rows in a single `INSERT` statement: -```text +```sql INSERT /*+APPEND*/ INTO sales VALUES (20, 20, '01-Aug-2011', 20, 'NY'), (30, 30, '01-Feb-2011', 30, 'FL'), @@ -35,6 +35,6 @@ INSERT /*+APPEND*/ INTO sales VALUES You can also include the `APPEND` hint in the `SELECT` clause of an `INSERT INTO` statement: -```text +```sql INSERT INTO sales_history SELECT /*+APPEND*/ FROM sales; ``` diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/07_parallelism_hints.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/07_parallelism_hints.mdx index 4673d0c4170..a3ff9bdf35e 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/07_parallelism_hints.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/07_parallelism_hints.mdx @@ -13,7 +13,7 @@ The `NO_PARALLEL` optimizer hint prevents use of a parallel scan. ## Synopsis -```text +```sql PARALLEL (
[ | DEFAULT ]) NO_PARALLEL (
) @@ -43,16 +43,17 @@ NO_PARALLEL (
) For these exammples, the following configuration parameter settings are in effect: -```text +```sql SHOW max_worker_processes; - +__OUTPUT__ max_worker_processes ---------------------- 8 (1 row) - +``` +```sql SHOW max_parallel_workers_per_gather; - +__OUTPUT__ max_parallel_workers_per_gather --------------------------------- 2 @@ -61,11 +62,11 @@ SHOW max_parallel_workers_per_gather; This example shows the default scan on table `pgbench_accounts`. A sequential scan is shown in the query plan. -```text +```sql SET trace_hints TO on; EXPLAIN SELECT * FROM pgbench_accounts; - +__OUTPUT__ QUERY PLAN --------------------------------------------------------------------------- Seq Scan on pgbench_accounts (cost=0.00..53746.15 rows=2014215 width=97) @@ -77,9 +78,9 @@ This example uses the `PARALLEL` hint. In the query plan, the Gather node, which !!! Note If `trace_hints` is set to `on`, the `INFO: [HINTS]` lines appear stating that `PARALLEL` was accepted for `pgbench_accounts` and other hint information. For the remaining examples, these lines aren't displayed as they generally show the same output, that is, `trace_hints` was reset to `off`. -```text +```sql EXPLAIN SELECT /*+ PARALLEL(pgbench_accounts) */ * FROM pgbench_accounts; - +__OUTPUT__ INFO: [HINTS] SeqScan of [pgbench_accounts] rejected due to PARALLEL hint. INFO: [HINTS] PARALLEL on [pgbench_accounts] accepted. INFO: [HINTS] Index Scan of [pgbench_accounts].[pgbench_accounts_pkey] @@ -95,11 +96,11 @@ rejected due to PARALLEL hint. Now, the `max_parallel_workers_per_gather` setting is increased: -```text +```sql SET max_parallel_workers_per_gather TO 6; SHOW max_parallel_workers_per_gather; - +__OUTPUT__ max_parallel_workers_per_gather --------------------------------- 6 @@ -108,9 +109,9 @@ SHOW max_parallel_workers_per_gather; The same query on `pgbench_accounts` is issued again with no parallel degree specification in the `PARALLEL` hint. The number of planned workers has increased to 4, as determined by the optimizer. -```text +```sql EXPLAIN SELECT /*+ PARALLEL(pgbench_accounts) */ * FROM pgbench_accounts; - +__OUTPUT__ QUERY PLAN ----------------------------------------------------------------------------- ------------ @@ -122,9 +123,9 @@ EXPLAIN SELECT /*+ PARALLEL(pgbench_accounts) */ * FROM pgbench_accounts; Now, a value of `6` is specified for the parallel degree parameter of the `PARALLEL` hint. The planned number of workers is returned as this specified value: -```text +```sql EXPLAIN SELECT /*+ PARALLEL(pgbench_accounts 6) */ * FROM pgbench_accounts; - +__OUTPUT__ QUERY PLAN ----------------------------------------------------------------------------- ------------ @@ -136,10 +137,10 @@ EXPLAIN SELECT /*+ PARALLEL(pgbench_accounts 6) */ * FROM pgbench_accounts; The same query is now issued with the `DEFAULT` setting for the parallel degree. The results indicate that the maximum allowable number of workers is planned. -```text +```sql EXPLAIN SELECT /*+ PARALLEL(pgbench_accounts DEFAULT) */ * FROM pgbench_accounts; - +__OUTPUT__ QUERY PLAN ----------------------------------------------------------------------------- ------------ @@ -156,9 +157,9 @@ Table `pgbench_accounts` is now altered so that the `parallel_workers` storage p The `parallel_workers` setting is shown by the PSQL `\d+` command. -```text +```sql ALTER TABLE pgbench_accounts SET (parallel_workers=3); - +__OUTPUT__ \d+ pgbench_accounts Table "public.pgbench_accounts" Column | Type | Modifiers | Storage | Stats target | Description @@ -175,9 +176,9 @@ Options: fillfactor=100, parallel_workers=3 When the `PARALLEL` hint is given with no parallel degree, the resulting number of planned workers is the value from the `parallel_workers` parameter: -```text +```sql EXPLAIN SELECT /*+ PARALLEL(pgbench_accounts) */ * FROM pgbench_accounts; - +__OUTPUT__ QUERY PLAN ----------------------------------------------------------------------------- ------------ @@ -191,8 +192,9 @@ Specifying a parallel degree value or `DEFAULT` in the `PARALLEL` hint overrides This example shows the `NO_PARALLEL` hint. With `trace_hints` set to `on`, the `INFO: [HINTS]` message states that the parallel scan was rejected due to the `NO_PARALLEL` hint. -```text +```sql EXPLAIN SELECT /*+ NO_PARALLEL(pgbench_accounts) */ * FROM pgbench_accounts; +__OUTPUT__ INFO: [HINTS] Parallel SeqScan of [pgbench_accounts] rejected due to NO_PARALLEL hint. QUERY PLAN diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/index.mdx index 0bffe816712..f3449e63d58 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/index.mdx @@ -18,9 +18,7 @@ As a rule, the query planner selects the least expensive plan. You can use an *o ## Synopsis -You can incude optimizer hints in either of these forms: - -```text +```sql { DELETE | INSERT | SELECT | UPDATE } /*+ { [ ] } [...] */ diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/01_dblink_ora_connect.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/01_dblink_ora_connect.mdx index 1106f53f406..23d1f6d7140 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/01_dblink_ora_connect.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/01_dblink_ora_connect.mdx @@ -8,7 +8,7 @@ The `dblink_ora_connect()` function establishes a connection to an Oracle databa The signature of the first form is: -```text +```c dblink_ora_connect(, , , , , , ) ``` @@ -33,7 +33,7 @@ The first form of `dblink_ora_connect()` returns a `TEXT` value. The signature of the second form of the `dblink_ora_connect()` function is: -```text +```c dblink_ora_connect(, ) ``` diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/02_dblink_ora_status.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/02_dblink_ora_status.mdx index dfe449c66d8..d440e7ea1ac 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/02_dblink_ora_status.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/02_dblink_ora_status.mdx @@ -6,7 +6,7 @@ title: "dblink_ora_status()" The `dblink_ora_status()` function returns the database connection status. The signature is: -```text +```c dblink_ora_status() ``` diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/03_dblink_ora_disconnect.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/03_dblink_ora_disconnect.mdx index 480e4ea973e..44a98ecb8e9 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/03_dblink_ora_disconnect.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/03_dblink_ora_disconnect.mdx @@ -6,7 +6,7 @@ title: "dblink_ora_disconnect()" The `dblink_ora_disconnect()` function closes a database connection. The signature is: -```text +```c dblink_ora_disconnect() ``` diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/04_dblink_ora_record.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/04_dblink_ora_record.mdx index 8a9e75d52ea..c27693aafe6 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/04_dblink_ora_record.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/04_dblink_ora_record.mdx @@ -6,7 +6,7 @@ title: "dblink_ora_record()" The `dblink_ora_record()` function retrieves information from a database. The signature is: -```text +```c dblink_ora_record(, ) ``` diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/05_dblink_ora_call.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/05_dblink_ora_call.mdx index 00a07766f49..7418ead84c5 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/05_dblink_ora_call.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/05_dblink_ora_call.mdx @@ -6,7 +6,7 @@ title: "dblink_ora_call()" The `dblink_ora_call()` function executes a non-`SELECT` statement on an Oracle database and returns a result set. The signature is: -```text +```c dblink_ora_call(, , ) ``` diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/06_dblink_ora_exec.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/06_dblink_ora_exec.mdx index 4e4ad9f23e5..521b53bce6e 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/06_dblink_ora_exec.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/06_dblink_ora_exec.mdx @@ -6,7 +6,7 @@ title: "dblink_ora_exec()" The `dblink_ora_exec()` procedure executes a DML or DDL statement in the remote database. The signature is: -```text +```c dblink_ora_exec(, ) ``` diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/07_dblink_ora_copy.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/07_dblink_ora_copy.mdx index 5ce6e421b88..1405f383132 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/07_dblink_ora_copy.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/01_dblink_ora_functions_and_procedures/07_dblink_ora_copy.mdx @@ -6,7 +6,7 @@ title: "dblink_ora_copy()" The `dblink_ora_copy()` function copies an Oracle table to an EDB table. The `dblink_ora_copy()` function returns a `BIGINT` value that represents the number of rows copied. The signature is: -```text +```c dblink_ora_copy(, , , , , ) ``` diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/02_calling_dblink_ora_functions.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/02_calling_dblink_ora_functions.mdx index 6fd2aa0ab05..1969973aa7f 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/02_calling_dblink_ora_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/02_calling_dblink_ora_functions.mdx @@ -10,7 +10,7 @@ legacyRedirectsGenerated: The following command establishes a connection using the `dblink_ora_connect()` function: -```text +```sql SELECT dblink_ora_connect('acctg', 'localhost', 'xe', 'hr', 'pwd', 1521); ``` @@ -24,10 +24,10 @@ You can use the connection name `acctg` to refer to this connection when calling The following command uses the `dblink_ora_copy()` function over a connection named `edb_conn`. It copies the `empid` and `deptno` columns from a table on an Oracle server named `ora_acctg` to a table located in the `public` schema on an instance of EDB Postgres Advanced Server named `as_acctg`. The `TRUNCATE` option is enforced, and a feedback count of `3` is specified: -```text +```sql edb=# SELECT dblink_ora_copy('edb_conn','select empid, deptno FROM ora_acctg', 'public', 'as_acctg', true, 3); - +__OUTPUT__ INFO: Row: 0 INFO: Row: 3 INFO: Row: 6 @@ -43,7 +43,7 @@ INFO: Row: 12 The following `SELECT` statement uses the `dblink_ora_record()` function and the `acctg` connection to retrieve information from the Oracle server: -```text +```sql SELECT * FROM dblink_ora_record( 'acctg', 'SELECT first_name from employees') AS t1(id VARCHAR); ``` diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/index.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/index.mdx index 761dca192e7..2b78189b0e3 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/06_dblink_ora/index.mdx @@ -15,13 +15,13 @@ To enable Oracle connectivity, download Oracle's freely available OCI drivers fr For Linux, if the Oracle instant client that you downloaded doesn't include the `libclntsh.so` library, you must create a symbolic link named `libclntsh.so` that points to the downloaded version. Navigate to the instant client directory and execute the following command: -```text +```shell ln -s libclntsh.so. libclntsh.so ``` Where `version` is the version number of the `libclntsh.so` library. For example: -```text +```shell ln -s libclntsh.so.12.1 libclntsh.so ``` @@ -34,8 +34,8 @@ Alternatively, you can set the value of the `oracle_home` configuration paramete To set the `oracle_home` configuration parameter in the `postgresql.conf` file, edit the file and add the following line: -```text -oracle_home = '' +```ini +oracle_home = 'lib_directory' ``` In place of ``, substitute the name of the `oracle_home` path to the Oracle client installation directory that contains `libclntsh.so` in Linux and `oci.dll` in Windows. diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/01_lexical_structure.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/01_lexical_structure.mdx index c8a747b7183..e1b45ec2778 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/01_lexical_structure.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/01_lexical_structure.mdx @@ -16,7 +16,7 @@ Also, *comments* can occur in SQL input. They aren't tokens. They are equivalent For example, the following is syntactically valid SQL input: -```text +```sql SELECT * FROM MY_TABLE; UPDATE MY_TABLE SET A = 5; INSERT INTO MY_TABLE VALUES (3, 'hi there'); diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/02_identifiers_and_key_words.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/02_identifiers_and_key_words.mdx index 2f805a70f13..6301f74366f 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/02_identifiers_and_key_words.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/02_identifiers_and_key_words.mdx @@ -14,23 +14,25 @@ SQL identifiers and key words must begin with a letter (`a-z` or `A-Z`). Subsequ Identifier and key word names aren't case sensitive. Therefore these two commands are equivalent: -``` +```sql UPDATE MY_TABLE SET A = 5; ``` -``` +can equivalently be written as: + +```sql uPDaTE my_TabLE SeT a = 5; ``` A convention often used is to write key words in upper case and names in lower case, for example: -``` +```sql UPDATE my_table SET a = 5; ``` A second kind of identifier is the *delimited identifier* or *quoted identifier*. It's formed by enclosing an arbitrary sequence of characters in double quotes ("). A delimited identifier is always an identifier, never a key word. So you can use `"select"` to refer to a column or table named `"select"`. An unquoted `select` is taken as a key word and therefore provokes a parse error when used where a table or column name is expected. The example can be written with quoted identifiers like this: -``` +```sql UPDATE "my_table" SET "a" = 5; ``` diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/03_constants.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/03_constants.mdx index a7d7642c84a..8552a23ecaf 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/03_constants.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/03_constants.mdx @@ -17,7 +17,7 @@ A *string constant* in SQL is an arbitrary sequence of characters bounded by sin Numeric constants are accepted in these general forms: -``` +```sql digits digits.[digits][e[+-]digits] [digits].digits[e[+-]digits] @@ -28,7 +28,7 @@ Where `digits` is one or more decimal digits (0 through 9). You must enter at le These are some examples of valid numeric constants: -```text +```sql 42 3.5 4. @@ -47,7 +47,7 @@ The initially assigned data type of a numeric constant is just a starting point You can enter a constant of an arbitrary type using the following notation: -``` +```sql CAST('string' AS type) ``` @@ -59,7 +59,7 @@ You can also use `CAST` to specify runtime type conversions of arbitrary express `MULTISET` is an extension to `CAST` that converts subquery results into a nested table type. The synopsis is: -```text +```sql CAST ( MULTISET ( < subquery > ) AS < datatype > ) ``` @@ -71,7 +71,7 @@ Where `subquery` is a query returning one or more rows, and `datatype` is a nest This example uses `MULTISET`: -```text +```sql edb=# CREATE OR REPLACE TYPE project_table_t AS TABLE OF VARCHAR2(25); CREATE TYPE edb=# CREATE TABLE projects (person_id NUMBER(10), project_name VARCHAR2(20)); @@ -80,7 +80,7 @@ edb=# CREATE TABLE pers_short (person_id NUMBER(10), last_name VARCHAR2(25)); CREATE TABLE ``` -```text +```sql edb=# INSERT INTO projects VALUES (1, 'Teach'); INSERT 0 1 edb=# INSERT INTO projects VALUES (1, 'Code'); @@ -97,13 +97,14 @@ edb=# COMMIT; COMMIT ``` -```text +```sql edb=# SELECT e.last_name, CAST(MULTISET( edb(# SELECT p.project_name edb(# FROM projects p edb(# WHERE p.person_id = e.person_id edb(# ORDER BY p.project_name) AS project_table_t) edb-# FROM pers_short e; +__OUTPUT__ last_name | project_table_t -----------+----------------- Morgan | {Code,Teach} diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/04_comments.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/04_comments.mdx index 97c3fd2c87f..4f2dad3837e 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/04_comments.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/01_sql_syntax/04_comments.mdx @@ -14,7 +14,7 @@ A comment is an arbitrary sequence of characters beginning with double dashes an Alternatively, you can use C-style block comments: -```text +```sql /* multiline comment * block */ diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/01_numeric_types.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/01_numeric_types.mdx index 454871b0df8..ae7c8feda88 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/01_numeric_types.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/01_numeric_types.mdx @@ -33,13 +33,13 @@ The `scale` of a `NUMBER` is the count of decimal digits in the fractional part, You can configure both the precision and the scale of the `NUMBER` type. To declare a column of type `NUMBER`, use the syntax: -```text +```sql NUMBER(precision, scale) ``` The precision must be positive, and the scale must be zero or positive. Alternatively, this syntax selects a scale of 0: -```text +```sql NUMBER(precision) ``` diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/02_character_types.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/02_character_types.mdx index f9996a66654..bac0d54d57e 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/02_character_types.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/02_character_types.mdx @@ -31,7 +31,7 @@ The database character set determines the character set used to store textual va If you explicitly cast an over-length value to a `CHAR(n)` type, the value is truncated to `n` characters without raising an error (as specified by the SQL standard). -``` +```sql VARCHAR, VARCHAR2, NVARCHAR and NVARCHAR2 ``` diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/04_date_time_types.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/04_date_time_types.mdx index 784017feda0..ee6159a741d 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/04_date_time_types.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/04_date_time_types.mdx @@ -94,7 +94,7 @@ Date and time input is accepted in ISO 8601 SQL-compatible format, the Oracle de Enclose any date or time literal input in single quotes, like text strings. The following SQL standard syntax is also accepted: -```text +```sql type 'value' ``` diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/06_xml_type.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/06_xml_type.mdx index 85b689fad2e..5176b7c4a12 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/06_xml_type.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/02_data_types/06_xml_type.mdx @@ -17,7 +17,7 @@ The XML type can store well-formed “documents,” as defined by the XML standa This example shows creating and inserting a row into a table with an `XMLTYPE` column: -```text +```sql CREATE TABLE books ( content XMLTYPE ); @@ -26,7 +26,7 @@ INSERT INTO books VALUES (XMLPARSE (DOCUMENT 'Manual...')); SELECT * FROM books; - +__OUTPUT__ content ---------------------------------------------------------- Manual... diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/03_mathematical_functions_and_operators.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/03_mathematical_functions_and_operators.mdx index 9d06b6db585..5cb629fd355 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/03_mathematical_functions_and_operators.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/03_mathematical_functions_and_operators.mdx @@ -22,15 +22,18 @@ Mathematical operators are provided for many EDB Postgres Advanced Server types. !!! Note If the `db_dialect` configuration parameter in the `postgresql.conf` file is set to `redwood`, then division of a pair of `INTEGER` data types doesn't result in a truncated value. Any fractional result is retained as shown by the following example: -```text +```sql edb=# SET db_dialect TO redwood; SET edb=# SHOW db_dialect; +__OUTPUT__ db_dialect ------------ redwood (1 row) - +``` +```sql +__OUTPUT__ edb=# SELECT CAST('10' AS INTEGER) / CAST('3' AS INTEGER) FROM dual; ?column? -------------------- @@ -42,16 +45,19 @@ This behavior is compatible with Oracle databases where there is no native `INTE If the `db_dialect` configuration parameter is set to `postgres`, then division of a pair of `INTEGER` data types results in a truncated value: -```text +```sql edb=# SET db_dialect TO postgres; SET edb=# SHOW db_dialect; +__OUTPUT__ db_dialect ------------ postgres (1 row) - +``` +```sql edb=# SELECT CAST('10' AS INTEGER) / CAST('3' AS INTEGER) FROM dual; +__OUTPUT__ ?column? ---------- 3 @@ -62,14 +68,17 @@ This behavior is compatible with PostgreSQL databases where division involving a Even when `db_dialect` is set to `redwood`, only division with a pair of `INTEGER` data types results in no truncation of the result. Division that includes only `SMALLINT` or `BIGINT` data types, with or without an `INTEGER` data type, results in truncation in the PostgreSQL fashion without retaining the fractional portion. In this example, `INTEGER` and `SMALLINT` are involved in the division: -```text +```sql edb=# SHOW db_dialect; +__OUTPUT__ db_dialect ------------ redwood (1 row) - +``` +```sql edb=# SELECT CAST('10' AS INTEGER) / CAST('3' AS SMALLINT) FROM dual; +__OUTPUT__ ?column? ---------- 3 diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/04_string_functions_and_operators.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/04_string_functions_and_operators.mdx index f9c3ba1011a..ff626f8e2c2 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/04_string_functions_and_operators.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/04_string_functions_and_operators.mdx @@ -69,7 +69,7 @@ If you use the string concatenation operator `‘||’`, then the types that hav The following query lists the data types that have implicit coercion to text: -```text +```sql SELECT castsource::regtype, casttarget::regtype, castfunc::regproc, CASE castcontext WHEN 'e' THEN 'explicit' @@ -120,7 +120,7 @@ So for example, data type `UUID` isn't in this list and therefore doesn't have t The following table is created for this example with a single row with all `NULL` column values: -```text +```sql CREATE TABLE null_concat_types ( boolean_type BOOLEAN, uuid_type UUID, @@ -134,16 +134,17 @@ Columns `boolean_type` and `char_type` have the implicit coercion to text while Thus, string concatenation with the concatenation operator `‘||‘` against columns `boolean_type` or `char_type` results in the following: -```text +```sql SELECT 'x=' || boolean_type || 'y' FROM null_concat_types; - +__OUTPUT__ ?column? ---------- x=y (1 row) - +``` +```sql SELECT 'x=' || char_type || 'y' FROM null_concat_types; - +__OUTPUT__ ?column? ---------- x=y @@ -152,9 +153,9 @@ SELECT 'x=' || char_type || 'y' FROM null_concat_types; But concatenation with column `uuid_type` results in the loss of the `x=` string: -```text +```sql SELECT 'x=' || uuid_type || 'y' FROM null_concat_types; - +__OUTPUT__ ?column? ---------- y @@ -163,9 +164,9 @@ SELECT 'x=' || uuid_type || 'y' FROM null_concat_types; However, using explicit casting with `::text` prevents the loss of the `x=` string: -```text +```sql SELECT 'x=' || uuid_type::text || 'y' FROM null_concat_types; - +__OUTPUT__ ?column? ---------- x=y @@ -174,9 +175,9 @@ SELECT 'x=' || uuid_type::text || 'y' FROM null_concat_types; Using the `CONCAT` function also preserves the `x=` string: -```text +```sql SELECT CONCAT('x=',uuid_type) || 'y' FROM null_concat_types; - +__OUTPUT__ ?column? ---------- x=y diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/05_pattern_matching_string_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/05_pattern_matching_string_functions.mdx index 097e5c2a21a..2ba82016007 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/05_pattern_matching_string_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/05_pattern_matching_string_functions.mdx @@ -15,7 +15,7 @@ EDB Postgres Advanced Server offers support for the `REGEXP_COUNT`, `REGEXP_INST `REGEXP_COUNT` searches a string for a regular expression and returns a count of the times that the regular expression occurs. The signature is: -```text +```sql INTEGER REGEXP_COUNT ( srcstr TEXT, @@ -47,8 +47,9 @@ INTEGER REGEXP_COUNT In this example, `REGEXP_COUNT` returns a count of the number of times the letter `i` is used in the character string `'reinitializing'`: -```text +```sql edb=# SELECT REGEXP_COUNT('reinitializing', 'i', 1) FROM DUAL; +__OUTPUT__ regexp_count -------------- 5 @@ -57,8 +58,9 @@ edb=# SELECT REGEXP_COUNT('reinitializing', 'i', 1) FROM DUAL; The command instructs `REGEXP_COUNT` to begin counting in the first position. If you modify the command to start the count on the sixth position, `REGEXP_COUNT` returns `3`: -```text +```sql edb=# SELECT REGEXP_COUNT('reinitializing', 'i', 6) FROM DUAL; +__OUTPUT__ regexp_count -------------- 3 @@ -71,7 +73,7 @@ The count now excludes any occurrences of the letter `i` that occur before the s `REGEXP_INSTR` searches a string for a POSIX-style regular expression. This function returns the position in the string where the match was located. The signature is: -```text +```sql INTEGER REGEXP_INSTR ( srcstr TEXT, @@ -124,8 +126,9 @@ INTEGER REGEXP_INSTR In this example, `REGEXP_INSTR` searches a string that contains a phone number for the first occurrence of a pattern that contains three consecutive digits: -```text +```sql edb=# SELECT REGEXP_INSTR('800-555-1212', '[0-9][0-9][0-9]', 1, 1) FROM DUAL; +__OUTPUT__ regexp_instr -------------- 1 @@ -134,8 +137,9 @@ edb=# SELECT REGEXP_INSTR('800-555-1212', '[0-9][0-9][0-9]', 1, 1) FROM DUAL; The command instructs `REGEXP_INSTR` to return the position of the first occurrence. If we modify the command to return the start of the second occurrence of three consecutive digits, `REGEXP_INSTR` returns `5`. The second occurrence of three consecutive digits begins in the fifth position. -```text +```sql edb=# SELECT REGEXP_INSTR('800-555-1212', '[0-9][0-9][0-9]', 1, 2) FROM DUAL; +__OUTPUT__ regexp_instr -------------- 5 @@ -147,7 +151,7 @@ edb=# SELECT REGEXP_INSTR('800-555-1212', '[0-9][0-9][0-9]', 1, 2) FROM DUAL; The `REGEXP_SUBSTR` function searches a string for a pattern specified by a POSIX-compliant regular expression. `REGEXP_SUBSTR` returns the string that matches the pattern specified in the call to the function. The signature of the function is: -```text +```sql TEXT REGEXP_SUBSTR ( srcstr TEXT, @@ -191,8 +195,9 @@ TEXT REGEXP_SUBSTR In this example, `REGEXP_SUBSTR` searches a string that contains a phone number for the first set of three consecutive digits: -```text +```sql edb=# SELECT REGEXP_SUBSTR('800-555-1212', '[0-9][0-9][0-9]', 1, 1) FROM DUAL; +__OUTPUT__ regexp_substr --------------- 800 @@ -201,8 +206,9 @@ edb=# SELECT REGEXP_SUBSTR('800-555-1212', '[0-9][0-9][0-9]', 1, 1) FROM DUAL; It locates the first occurrence of three digits and returns the string `(800)`. If we modify the command to check for the second occurrence of three consecutive digits, `REGEXP_SUBSTR` returns `555`, the contents of the second substring. -```text +```sql edb=# SELECT REGEXP_SUBSTR('800-555-1212', '[0-9][0-9][0-9]', 1, 2) FROM DUAL; +__OUTPUT__ regexp_substr --------------- 555 diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/06_pattern_matching_using_the_like_operator.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/06_pattern_matching_using_the_like_operator.mdx index 9f587199757..b27f1dc6e6c 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/06_pattern_matching_using_the_like_operator.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/06_pattern_matching_using_the_like_operator.mdx @@ -11,7 +11,7 @@ legacyRedirectsGenerated: EDB Postgres Advanced Server provides pattern matching using the traditional SQL `LIKE` operator. The syntax for the `LIKE` operator is: -```text +```sql string LIKE pattern [ ESCAPE escape-character ] string NOT LIKE pattern [ ESCAPE escape-character ] ``` @@ -22,7 +22,7 @@ If `pattern` doesn't contain percent signs or underscore, then the pattern repre Some examples: -```text +```sql 'abc' LIKE 'abc' true 'abc' LIKE 'a%' true 'abc' LIKE '_b_' true diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx index f751f1e437d..dfff955c2ff 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx @@ -31,18 +31,21 @@ The EDB Postgres Advanced Server formatting functions provide a powerful set of !!! Note The output format of `TO_DSINTERVAL(string)` can be altered using `intervalstyle` GUC setting. For example: - ```text + ```sql edb=# SET intervalstyle = 'sql_standard'; SET edb=# select to_dsinterval('80 13:30:00') from dual; + __OUTPUT__ to_dsinterval --------------- 80 13:30:00 - + ``` + ```sql edb=# SET intervalstyle = 'postgres_verbose'; SET edb=# select to_dsinterval('80 13:30:00') from dual; + __OUTPUT__ to_dsinterval ---------------------------- @ 80 days 13 hours 30 mins @@ -54,20 +57,25 @@ In an output template string (for `TO_CHAR`), certain patterns are recognized an If you don't specify a date, month, or year when calling `TO_TIMESTAMP`, `TO_TIMESTAMP_TZ`, or `TO_DATE`, then by default the output format considers the first date of a current month or current year. In the following example, date, month, and year isn't specified in the input string. `TO_TIMESTAMP`, `TO_TIMESTAMP_TZ`, and `TO_DATE` returns a default value of the first date of a current month and current year. -```text +```sql edb=# select to_timestamp('12', 'HH'); +__OUTPUT__ to_timestamp --------------------------- 01-MAY-20 12:00:00 +05:30 (1 row) - +``` +```sql edb=# select to_timestamp_tz('12', 'HH'); +__OUTPUT__ to_timestamp_tz --------------------------- 01-MAY-20 12:00:00 +05:30 (1 row) - +``` +```sql edb=# select to_date('12', 'HH'); +__OUTPUT__ to_date -------------------- 01-MAY-20 12:00:00 @@ -149,7 +157,7 @@ Usage notes for date/time formatting: - `TO_TIMESTAMP`, `TO_TIMESTAMP_TZ`, and `TO_DATE` skip multiple blank spaces in the input string if you don't use the `FX` option. You must use `FX` as the first item in the template. For example: - ```text + ```sql TO_TIMESTAMP('2000 - JUN', 'YYYY-MON') is correct, but TO_TIMESTAMP('2000 JUN', 'FXYYYY MON') and TO_TIMESTAMP_TZ('2000 JUN', 'FXYYYY MON') returns an error @@ -223,16 +231,17 @@ Format patterns that result in a non-immutable function include any variations o For this example, a table with a `TIMESTAMP` column is created: -```text +```sql CREATE TABLE ts_tbl (ts_col TIMESTAMP); ``` The following shows the successful creation of an index with the `IMMUTABLE` form of the `TO_CHAR` function. -```text +```sql edb=# CREATE INDEX ts_idx ON ts_tbl (TO_CHAR(ts_col,'YYYY-MM-DD HH24:MI:SS')); CREATE INDEX edb=# \dS ts_idx +__OUTPUT__ Index "public.ts_idx" Column | Type | Definition ---------+-------------------+------------------------------------------------------------ @@ -242,7 +251,7 @@ btree, for table "public.ts_tbl" The following results in an error because the format specified in the `TO_CHAR` function prevents the use of the `IMMUTABLE` form since the three-character month abbreviation, `MON`, can result in different return values based on the locale setting. -```text +```sql edb=# CREATE INDEX ts_idx_2 ON ts_tbl (TO_CHAR(ts_col, 'DD-MON-YYYY')); ERROR: functions in index expression must be marked IMMUTABLE ``` diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx index b61b8122269..df6c1075378 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/08_date_time_functions_and_operators.mdx @@ -48,23 +48,25 @@ If the given date contains a time portion, it's carried forward to the result un These examples show the `ADD_MONTHS` function: -```text +```sql SELECT ADD_MONTHS('13-JUN-07',4) FROM DUAL; - +__OUTPUT__ add_months -------------------- 13-OCT-07 00:00:00 (1 row) - +``` +```sql SELECT ADD_MONTHS('31-DEC-06',2) FROM DUAL; - +__OUTPUT__ add_months -------------------- 28-FEB-07 00:00:00 (1 row) - +``` +```sql SELECT ADD_MONTHS('31-MAY-04',-3) FROM DUAL; - +__OUTPUT__ add_months -------------------- 29-FEB-04 00:00:00 @@ -82,9 +84,9 @@ EDB Postgres Advanced Server provides functions that return values related to th `CURRENT_DATE` returns the current date and time based on the start time of the current transaction. The value of `CURRENT_DATE` doesn't change if called multiple times in a transaction. -```text +```sql SELECT CURRENT_DATE FROM DUAL; - +__OUTPUT__ date ----------- 06-AUG-07 @@ -92,9 +94,9 @@ SELECT CURRENT_DATE FROM DUAL; `CURRENT_TIMESTAMP` returns the current date and time. When called from a single SQL statement, it returns the same value for each occurrence in the statement. If called from multiple statements in a transaction, it might return different values for each occurrence. If called from a function, it might return a value different from the one returned by `current_timestamp` in the caller. -```text +```sql SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP FROM DUAL; - +__OUTPUT__ current_timestamp | current_timestamp ----------------------------------+---------------------------------- 02-SEP-13 17:52:29.261473 +05:00 | 02-SEP-13 17:52:29.261474 +05:00 @@ -102,16 +104,17 @@ SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP FROM DUAL; You can optionally give `LOCALTIMESTAMP` a precision parameter. The parameter causes the result to be rounded to the specified number of fractional digits in the seconds field. Without a precision parameter, the result is given to the full available precision. -```text +```sql SELECT LOCALTIMESTAMP FROM DUAL; - +__OUTPUT__ timestamp ------------------------ 06-AUG-07 16:11:35.973 (1 row) - +``` +```sql SELECT LOCALTIMESTAMP(2) FROM DUAL; - +__OUTPUT__ timestamp ----------------------- 06-AUG-07 16:11:44.58 @@ -128,9 +131,9 @@ The `EXTRACT` function retrieves subfields such as year or hour from date/time v The year field. -```text +```sql SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL; - +__OUTPUT__ date_part ----------- 2001 @@ -141,9 +144,9 @@ SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL; The number of the month in the year (1 - 12). -```text +```sql SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL; - +__OUTPUT__ date_part ----------- 2 @@ -154,9 +157,9 @@ SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL; The day of the month field (1 - 31). -```text +```sql SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL; - +__OUTPUT__ date_part ----------- 16 @@ -167,9 +170,9 @@ SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL; The hour field (0 - 23). -```text +```sql SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL; - +__OUTPUT__ date_part ----------- 20 @@ -180,9 +183,9 @@ SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL; The minutes field (0 - 59). -```text +```sql SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL; - +__OUTPUT__ date_part ----------- 38 @@ -193,9 +196,9 @@ SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL; The seconds field, including fractional parts (0 - 59). -```text +```sql SELECT EXTRACT(SECOND FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL; - +__OUTPUT__ date_part ----------- 40 @@ -210,30 +213,33 @@ The result is always a whole number of months if the day of the month of both da These examples show the `MONTHS_BETWEEN` function: -```text +```sql SELECT MONTHS_BETWEEN('15-DEC-06','15-OCT-06') FROM DUAL; - +__OUTPUT__ months_between ---------------- 2 (1 row) - +``` +```sql SELECT MONTHS_BETWEEN('15-OCT-06','15-DEC-06') FROM DUAL; - +__OUTPUT__ months_between ---------------- -2 (1 row) - +``` +```sql SELECT MONTHS_BETWEEN('31-JUL-00','01-JUL-00') FROM DUAL; - +__OUTPUT__ months_between ---------------- 0.967741935 (1 row) - +``` +```sql SELECT MONTHS_BETWEEN('01-JAN-07','01-JAN-06') FROM DUAL; - +__OUTPUT__ months_between ---------------- 12 @@ -246,16 +252,17 @@ The `NEXT_DAY` function returns the first occurrence of the given weekday strict These examples show the `NEXT_DAY` function. -```text +```sql SELECT NEXT_DAY(TO_DATE('13-AUG-07','DD-MON-YY'),'SUNDAY') FROM DUAL; - +__OUTPUT__ next_day -------------------- 19-AUG-07 00:00:00 (1 row) - +``` +```sql SELECT NEXT_DAY(TO_DATE('13-AUG-07','DD-MON-YY'),'MON') FROM DUAL; - +__OUTPUT__ next_day -------------------- 20-AUG-07 00:00:00 @@ -266,7 +273,7 @@ SELECT NEXT_DAY(TO_DATE('13-AUG-07','DD-MON-YY'),'MON') FROM DUAL; The `NEW_TIME` function converts a date and time from one time zone to another. `NEW_TIME` returns a value of type `DATE`. The syntax is: -```text +```sql NEW_TIME(DATE, time_zone1, time_zone2) ``` @@ -295,10 +302,10 @@ NEW_TIME(DATE, time_zone1, time_zone2) This example shows the `NEW_TIME` function: -```text +```sql SELECT NEW_TIME(TO_DATE('08-13-07 10:35:15','MM-DD-YY HH24:MI:SS'),'AST', 'PST') "Pacific Standard Time" FROM DUAL; - +__OUTPUT__ Pacific Standard Time --------------------- 13-AUG-07 06:35:15 @@ -311,8 +318,9 @@ The `NUMTODSINTERVAL` function converts a numeric value to a time interval that This example converts a numeric value to a time interval that includes days and hours: -```text +```sql SELECT numtodsinterval(100, ‘hour’); +__OUTPUT__ numtodsinterval --------------- 4 days 04:00:00 @@ -321,8 +329,9 @@ numtodsinterval This example converts a numeric value to a time interval that includes minutes and seconds: -```text +```sql SELECT numtodsinterval(100, ‘second’); +__OUTPUT__ numtodsinterval --------------- 1 min 40 secs @@ -335,8 +344,9 @@ The `NUMTOYMINTERVAL` function converts a numeric value to a time interval that This example converts a numeric value to a time interval that includes years and months: -```text +```sql SELECT numtoyminterval(100, ‘month’); +__OUTPUT__ numtoyminterval --------------- 8 years 4 mons @@ -345,8 +355,9 @@ numtoyminterval This example converts a numeric value to a time interval that includes years only: -```text +```sql SELECT numtoyminterval(100, ‘year’); +__OUTPUT__ numtoyminterval --------------- 100 years @@ -376,16 +387,17 @@ These examples show the use of the `ROUND` function. These examples round to the nearest hundred years: -```text +```sql SELECT TO_CHAR(ROUND(TO_DATE('1950','YYYY'),'CC'),'DD-MON-YYYY') "Century" FROM DUAL; - +__OUTPUT__ Century ------------- 01-JAN-1901 (1 row) - +``` +```sql SELECT TO_CHAR(ROUND(TO_DATE('1951','YYYY'),'CC'),'DD-MON-YYYY') "Century" FROM DUAL; - +__OUTPUT__ Century ------------- 01-JAN-2001 @@ -394,16 +406,17 @@ SELECT TO_CHAR(ROUND(TO_DATE('1951','YYYY'),'CC'),'DD-MON-YYYY') "Century" FROM These examples round to the nearest year: -```text +```sql SELECT TO_CHAR(ROUND(TO_DATE('30-JUN-1999','DD-MON-YYYY'),'Y'),'DD-MON-YYYY') "Year" FROM DUAL; - +__OUTPUT__ Year ------------- 01-JAN-1999 (1 row) - +``` +```sql SELECT TO_CHAR(ROUND(TO_DATE('01-JUL-1999','DD-MON-YYYY'),'Y'),'DD-MON-YYYY') "Year" FROM DUAL; - +__OUTPUT__ Year ------------- 01-JAN-2000 @@ -414,16 +427,17 @@ These examples round to the nearest ISO year. The first example rounds to 2004, (An ISO year begins on the first Monday from which a seven-day span, Monday through Sunday, contains at least four days of the new year. It's possible for the beginning of an ISO year to start in December of the prior year.) -```text +```sql SELECT TO_CHAR(ROUND(TO_DATE('30-JUN-2004','DD-MON-YYYY'),'IYYY'),'DD-MON-YYYY') "ISO Year" FROM DUAL; - +__OUTPUT__ ISO Year ------------- 29-DEC-2003 (1 row) - +``` +```sql SELECT TO_CHAR(ROUND(TO_DATE('01-JUL-2004','DD-MON-YYYY'),'IYYY'),'DD-MON-YYYY') "ISO Year" FROM DUAL; - +__OUTPUT__ ISO Year ------------- 03-JAN-2005 @@ -432,16 +446,17 @@ SELECT TO_CHAR(ROUND(TO_DATE('01-JUL-2004','DD-MON-YYYY'),'IYYY'),'DD-MON-YYYY') These examples round to the nearest quarter: -```text +```sql SELECT ROUND(TO_DATE('15-FEB-07','DD-MON-YY'),'Q') "Quarter" FROM DUAL; - +__OUTPUT__ Quarter -------------------- 01-JAN-07 00:00:00 (1 row) - +``` +```sql SELECT ROUND(TO_DATE('16-FEB-07','DD-MON-YY'),'Q') "Quarter" FROM DUAL; - +__OUTPUT__ Quarter -------------------- 01-APR-07 00:00:00 @@ -450,16 +465,17 @@ SELECT ROUND(TO_DATE('16-FEB-07','DD-MON-YY'),'Q') "Quarter" FROM DUAL; These examples round to the nearest month: -```text +```sql SELECT ROUND(TO_DATE('15-DEC-07','DD-MON-YY'),'MONTH') "Month" FROM DUAL; - +__OUTPUT__ Month -------------------- 01-DEC-07 00:00:00 (1 row) - +``` +```sql SELECT ROUND(TO_DATE('16-DEC-07','DD-MON-YY'),'MONTH') "Month" FROM DUAL; - +__OUTPUT__ Month -------------------- 01-JAN-08 00:00:00 @@ -468,16 +484,17 @@ SELECT ROUND(TO_DATE('16-DEC-07','DD-MON-YY'),'MONTH') "Month" FROM DUAL; These examples round to the nearest week. The first day of 2007 lands on a Monday. In the first example, January 18 is closest to the Monday that lands on January 15. In the second example, January 19 is closer to the Monday that falls on January 22. -```text +```sql SELECT ROUND(TO_DATE('18-JAN-07','DD-MON-YY'),'WW') "Week" FROM DUAL; - +__OUTPUT__ Week -------------------- 15-JAN-07 00:00:00 (1 row) - +``` +```sql SELECT ROUND(TO_DATE('19-JAN-07','DD-MON-YY'),'WW') "Week" FROM DUAL; - +__OUTPUT__ Week -------------------- 22-JAN-07 00:00:00 @@ -486,16 +503,17 @@ SELECT ROUND(TO_DATE('19-JAN-07','DD-MON-YY'),'WW') "Week" FROM DUAL; These examples round to the nearest ISO week. An ISO week begins on a Monday. In the first example, January 1, 2004 is closest to the Monday that lands on December 29, 2003. In the second example, January 2, 2004 is closer to the Monday that lands on January 5, 2004. -```text +```sql SELECT ROUND(TO_DATE('01-JAN-04','DD-MON-YY'),'IW') "ISO Week" FROM DUAL; - +__OUTPUT__ ISO Week -------------------- 29-DEC-03 00:00:00 (1 row) - +``` +```sql SELECT ROUND(TO_DATE('02-JAN-04','DD-MON-YY'),'IW') "ISO Week" FROM DUAL; - +__OUTPUT__ ISO Week -------------------- 05-JAN-04 00:00:00 @@ -504,16 +522,17 @@ SELECT ROUND(TO_DATE('02-JAN-04','DD-MON-YY'),'IW') "ISO Week" FROM DUAL; These examples round to the nearest week, where a week is considered to start on the same day as the first day of the month: -```text +```sql SELECT ROUND(TO_DATE('05-MAR-07','DD-MON-YY'),'W') "Week" FROM DUAL; - +__OUTPUT__ Week -------------------- 08-MAR-07 00:00:00 (1 row) - +``` +```sql SELECT ROUND(TO_DATE('04-MAR-07','DD-MON-YY'),'W') "Week" FROM DUAL; - +__OUTPUT__ Week -------------------- 01-MAR-07 00:00:00 @@ -522,18 +541,19 @@ SELECT ROUND(TO_DATE('04-MAR-07','DD-MON-YY'),'W') "Week" FROM DUAL; These examples round to the nearest day: -```text +```sql SELECT ROUND(TO_DATE('04-AUG-07 11:59:59 AM','DD-MON-YY HH:MI:SS AM'),'J') "Day" FROM DUAL; - +__OUTPUT__ Day -------------------- 04-AUG-07 00:00:00 (1 row) - +``` +```sql SELECT ROUND(TO_DATE('04-AUG-07 12:00:00 PM','DD-MON-YY HH:MI:SS AM'),'J') "Day" FROM DUAL; - +__OUTPUT__ Day -------------------- 05-AUG-07 00:00:00 @@ -542,16 +562,17 @@ SELECT ROUND(TO_DATE('04-AUG-07 12:00:00 PM','DD-MON-YY HH:MI:SS AM'),'J') These examples round to the start of the nearest day of the week (Sunday): -```text +```sql SELECT ROUND(TO_DATE('08-AUG-07','DD-MON-YY'),'DAY') "Day of Week" FROM DUAL; - +__OUTPUT__ Day of Week -------------------- 05-AUG-07 00:00:00 (1 row) - +``` +```sql SELECT ROUND(TO_DATE('09-AUG-07','DD-MON-YY'),'DAY') "Day of Week" FROM DUAL; - +__OUTPUT__ Day of Week -------------------- 12-AUG-07 00:00:00 @@ -560,16 +581,17 @@ SELECT ROUND(TO_DATE('09-AUG-07','DD-MON-YY'),'DAY') "Day of Week" FROM DUAL; These examples round to the nearest hour: -```text +```sql SELECT TO_CHAR(ROUND(TO_DATE('09-AUG-07 08:29','DD-MON-YY HH:MI'),'HH'),'DD-MON-YY HH24:MI:SS') "Hour" FROM DUAL; - +__OUTPUT__ Hour -------------------- 09-AUG-07 08:00:00 (1 row) - +``` +```sql SELECT TO_CHAR(ROUND(TO_DATE('09-AUG-07 08:30','DD-MON-YY HH:MI'),'HH'),'DD-MON-YY HH24:MI:SS') "Hour" FROM DUAL; - +__OUTPUT__ Hour -------------------- 09-AUG-07 09:00:00 @@ -578,18 +600,19 @@ SELECT TO_CHAR(ROUND(TO_DATE('09-AUG-07 08:30','DD-MON-YY HH:MI'),'HH'),'DD-MON- These examples round to the nearest minute: -```text +```sql SELECT TO_CHAR(ROUND(TO_DATE('09-AUG-07 08:30:29','DD-MON-YY HH:MI:SS'),'MI'),'DD-MON-YY HH24:MI:SS') "Minute" FROM DUAL; - +__OUTPUT__ Minute -------------------- 09-AUG-07 08:30:00 (1 row) - +``` +```sql SELECT TO_CHAR(ROUND(TO_DATE('09-AUG-07 08:30:30','DD-MON-YY HH:MI:SS'),'MI'),'DD-MON-YY HH24:MI:SS') "Minute" FROM DUAL; - +__OUTPUT__ Minute -------------------- 09-AUG-07 08:31:00 @@ -604,8 +627,9 @@ When called from a single SQL statement, it returns the same value for each occu This example shows a call to `SYSDATE`: -```text +```sql SELECT SYSDATE, SYSDATE FROM DUAL; +__OUTPUT__ sysdate | sysdate --------------------+-------------------- 28-APR-20 16:45:28 | 28-APR-20 16:45:28 @@ -635,9 +659,9 @@ Following are examples that use the `TRUNC` function. This example truncates down to the hundred-years unit: -```text +```sql SELECT TO_CHAR(TRUNC(TO_DATE('1951','YYYY'),'CC'),'DD-MON-YYYY') "Century" FROM DUAL; - +__OUTPUT__ Century ------------- 01-JAN-1901 @@ -646,9 +670,9 @@ SELECT TO_CHAR(TRUNC(TO_DATE('1951','YYYY'),'CC'),'DD-MON-YYYY') "Century" FROM This example truncates down to the year: -```text +```sql SELECT TO_CHAR(TRUNC(TO_DATE('01-JUL-1999','DD-MON-YYYY'),'Y'),'DD-MON-YYYY') "Year" FROM DUAL; - +__OUTPUT__ Year ------------- 01-JAN-1999 @@ -657,9 +681,9 @@ SELECT TO_CHAR(TRUNC(TO_DATE('01-JUL-1999','DD-MON-YYYY'),'Y'),'DD-MON-YYYY') "Y This example truncates down to the beginning of the ISO year: -```text +```sql SELECT TO_CHAR(TRUNC(TO_DATE('01-JUL-2004','DD-MON-YYYY'),'IYYY'),'DD-MON-YYYY') "ISO Year" FROM DUAL; - +__OUTPUT__ ISO Year ------------- 29-DEC-2003 @@ -668,9 +692,9 @@ SELECT TO_CHAR(TRUNC(TO_DATE('01-JUL-2004','DD-MON-YYYY'),'IYYY'),'DD-MON-YYYY') This example truncates down to the start date of the quarter: -```text +```sql SELECT TRUNC(TO_DATE('16-FEB-07','DD-MON-YY'),'Q') "Quarter" FROM DUAL; - +__OUTPUT__ Quarter -------------------- 01-JAN-07 00:00:00 @@ -679,9 +703,9 @@ SELECT TRUNC(TO_DATE('16-FEB-07','DD-MON-YY'),'Q') "Quarter" FROM DUAL; This example truncates to the start of the month: -```text +```sql SELECT TRUNC(TO_DATE('16-DEC-07','DD-MON-YY'),'MONTH') "Month" FROM DUAL; - +__OUTPUT__ Month -------------------- 01-DEC-07 00:00:00 @@ -690,9 +714,9 @@ SELECT TRUNC(TO_DATE('16-DEC-07','DD-MON-YY'),'MONTH') "Month" FROM DUAL; This example truncates down to the start of the week determined by the first day of the year. The first day of 2007 lands on a Monday, so the Monday just prior to January 19 is January 15. -```text +```sql SELECT TRUNC(TO_DATE('19-JAN-07','DD-MON-YY'),'WW') "Week" FROM DUAL; - +__OUTPUT__ Week -------------------- 15-JAN-07 00:00:00 @@ -701,9 +725,9 @@ SELECT TRUNC(TO_DATE('19-JAN-07','DD-MON-YY'),'WW') "Week" FROM DUAL; This example truncates to the start of an ISO week. An ISO week begins on a Monday. January 2, 2004 falls in the ISO week that starts on Monday, December 29, 2003. -```text +```sql SELECT TRUNC(TO_DATE('02-JAN-04','DD-MON-YY'),'IW') "ISO Week" FROM DUAL; - +__OUTPUT__ ISO Week -------------------- 29-DEC-03 00:00:00 @@ -712,9 +736,9 @@ SELECT TRUNC(TO_DATE('02-JAN-04','DD-MON-YY'),'IW') "ISO Week" FROM DUAL; This example truncates to the start of the week, where a week is considered to start on the same day as the first day of the month: -```text +```sql SELECT TRUNC(TO_DATE('21-MAR-07','DD-MON-YY'),'W') "Week" FROM DUAL; - +__OUTPUT__ Week -------------------- 15-MAR-07 00:00:00 @@ -723,10 +747,10 @@ SELECT TRUNC(TO_DATE('21-MAR-07','DD-MON-YY'),'W') "Week" FROM DUAL; This example truncates to the start of the day: -```text +```sql SELECT TRUNC(TO_DATE('04-AUG-07 12:00:00 PM','DD-MON-YY HH:MI:SS AM'),'J') "Day" FROM DUAL; - +__OUTPUT__ Day -------------------- 04-AUG-07 00:00:00 @@ -735,9 +759,9 @@ SELECT TRUNC(TO_DATE('04-AUG-07 12:00:00 PM','DD-MON-YY HH:MI:SS AM'),'J') This example truncates to the start of the week (Sunday): -```text +```sql SELECT TRUNC(TO_DATE('09-AUG-07','DD-MON-YY'),'DAY') "Day of Week" FROM DUAL; - +__OUTPUT__ Day of Week -------------------- 05-AUG-07 00:00:00 @@ -746,9 +770,9 @@ SELECT TRUNC(TO_DATE('09-AUG-07','DD-MON-YY'),'DAY') "Day of Week" FROM DUAL; This example truncates to the start of the hour: -```text +```sql SELECT TO_CHAR(TRUNC(TO_DATE('09-AUG-07 08:30','DD-MON-YY HH:MI'),'HH'),'DD-MON-YY HH24:MI:SS') "Hour" FROM DUAL; - +__OUTPUT__ Hour -------------------- 09-AUG-07 08:00:00 @@ -757,10 +781,10 @@ SELECT TO_CHAR(TRUNC(TO_DATE('09-AUG-07 08:30','DD-MON-YY HH:MI'),'HH'),'DD-MON- This example truncates to the minute: -```text +```sql SELECT TO_CHAR(TRUNC(TO_DATE('09-AUG-07 08:30:30','DD-MON-YY HH:MI:SS'),'MI'),'DD-MON-YY HH24:MI:SS') "Minute" FROM DUAL; - +__OUTPUT__ Minute -------------------- 09-AUG-07 08:30:00 diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/09_sequence_manipulation_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/09_sequence_manipulation_functions.mdx index 5e0d31156db..fff927f9e4f 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/09_sequence_manipulation_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/09_sequence_manipulation_functions.mdx @@ -11,7 +11,7 @@ legacyRedirectsGenerated: Sequence objects, which are also called sequence generators or sequences, are special single-row tables created with the `CREATE SEQUENCE` command. You usually use a sequence to generate unique identifiers for rows of a table. The sequence functions provide simple, multiuser-safe methods for obtaining successive sequence values from sequence objects. -```text +```sql sequence.NEXTVAL sequence.CURRVAL ``` diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/10_conditional_expressions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/10_conditional_expressions.mdx index f6f6810af61..71fe5586a73 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/10_conditional_expressions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/10_conditional_expressions.mdx @@ -15,7 +15,7 @@ SQL-compliant conditional expressions are available in EDB Postgres Advanced Ser The SQL `CASE` expression is a generic conditional expression, similar to if/else statements in other languages: -```text +```sql CASE WHEN condition THEN result [ WHEN ... ] [ ELSE result ] @@ -26,23 +26,24 @@ You can use `CASE` clauses wherever an expression is valid. `condition` is an ex For example: -```text +```sql SELECT * FROM test; - +__OUTPUT__ a --- 1 2 3 (3 rows) - +``` +```sql SELECT a, CASE WHEN a=1 THEN 'one' WHEN a=2 THEN 'two' ELSE 'other' END FROM test; - +__OUTPUT__ a | case ---+------- 1 | one @@ -55,7 +56,7 @@ The data types of all the `result` expressions must be convertible to a single o The following simple `CASE` expression is a specialized variant of the general form: -```text +```sql CASE expression WHEN value THEN result [ WHEN ... ] @@ -67,14 +68,14 @@ The `expression` is computed and compared to all the `value` specifications in t This same example can be written using the simple `CASE` syntax: -```text +```sql SELECT a, CASE a WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'other' END FROM test; - +__OUTPUT__ a | case ---+------- 1 | one @@ -85,7 +86,7 @@ FROM test; A `CASE` expression doesn't evaluate any subexpressions that aren't needed to determine the result. For example, this is a possible way of avoiding a division-by-zero failure: -```text +```sql SELECT ... WHERE CASE WHEN x <> 0 THEN y/x > 1.5 ELSE false END; ``` @@ -93,13 +94,13 @@ SELECT ... WHERE CASE WHEN x <> 0 THEN y/x > 1.5 ELSE false END; The `COALESCE` function returns the first of its arguments that isn't null. Null is returned only if all arguments are null. -```text +```sql COALESCE(value [, value2 ] ... ) ``` It's often used to substitute a default value for null values when data is retrieved for display or further computation. For example: -``` +```sql SELECT COALESCE(description, short_description, '(none)') ... ``` @@ -109,13 +110,13 @@ Like a `CASE` expression, `COALESCE` doesn't evaluate arguments that aren't need The `NULLIF` function returns a null value if `value1` and `value2` are equal. Otherwise it returns `value1`. -```text +```sql NULLIF(value1, value2) ``` You can use this to perform the inverse operation of the `COALESCE` example: -``` +```sql SELECT NULLIF(value1, '(none)') ... ``` @@ -125,7 +126,7 @@ If `value1` is (none), return a null. Otherwise return `value1`. The `NVL` function returns the first of its arguments that isn't null. `NVL` evaluates the first expression. If that expression evaluates to `NULL`, `NVL` returns the second expression. -```text +```sql NVL(expr1, expr2) ``` @@ -151,7 +152,7 @@ In this example, the type of 1 is numeric and the type of '' is considered as un `NVL2` evaluates an expression and returns either the second or third expression, depending on the value of the first expression. If the first expression isn't `NULL`, `NVL2` returns the value in `expr2`. If the first expression is `NULL`, `NVL2` returns the value in `expr3`. -```text +```sql NVL2(expr1, expr2, expr3) ``` @@ -159,7 +160,7 @@ The return type is the same as the argument types. All arguments must have the s This example computes a bonus for commissioned employees. If a given employee is a commissioned employee, this expression returns an amount equal to 110% of their commission. If the employee isn't a commissioned employee, that is, their commission is `NULL`, this expression returns `0`. -```text +```sql bonus = NVL2(emp.commission, emp.commission * 1.1, 0) ``` @@ -167,7 +168,7 @@ bonus = NVL2(emp.commission, emp.commission * 1.1, 0) The `GREATEST` and `LEAST` functions select the largest or smallest value from a list of any number of expressions. -```text +```sql GREATEST(value [, value2 ] ... ) LEAST(value [, value2 ] ... ) ``` diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/11_aggregate_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/11_aggregate_functions.mdx index 3bcd35de57c..a5279a22b36 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/11_aggregate_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/11_aggregate_functions.mdx @@ -57,7 +57,7 @@ The `LISTAGG` function mandates the use of an `ORDER BY` clause under a `WITHIN ### Synopsis -```text +```sql LISTAGG( [, ]) WITHIN GROUP( ) [ OVER ] ``` @@ -88,7 +88,7 @@ The `LISTAGG` function returns a string value. This example concatenates the values in the `emp` table and lists all the employees separated by a `delimiter` comma. First, create a table named `emp`. Then insert records into the `emp` table. -```text +```texsql edb=# CREATE TABLE emp edb-# (EMPNO NUMBER(4) NOT NULL, edb(# ENAME VARCHAR2(10), @@ -101,7 +101,7 @@ edb(# DEPTNO NUMBER(2)); CREATE TABLE ``` -```text +```sql edb=# INSERT INTO emp VALUES edb-# (7499, 'ALLEN', 'SALESMAN', 7698, edb(# TO_DATE('20-FEB-1981', 'DD-MON-YYYY'), 1600, 300, 30); @@ -122,7 +122,7 @@ edb=# INSERT INTO emp VALUES edb-# (7698, 'BLAKE', 'MANAGER', 7839, edb(# TO_DATE('1-MAY-1981', 'DD-MON-YYYY'), 2850, NULL, 30); INSERT 0 1 - +__OUTPUT__ edb=# SELECT LISTAGG(ENAME, ',') WITHIN GROUP (ORDER BY ENAME) FROM emp; listagg ------------------------------------- @@ -132,9 +132,10 @@ edb=# SELECT LISTAGG(ENAME, ',') WITHIN GROUP (ORDER BY ENAME) FROM emp; This example uses a `PARTITION BY` clause with `LISTAGG` in the `emp` table. It generates output based on a partition by `deptno` that applies to each partition and not on the entire table. -```text +```sql edb=# SELECT DISTINCT DEPTNO, LISTAGG(ENAME, ',') WITHIN GROUP (ORDER BY ENAME) OVER(PARTITION BY DEPTNO) FROM emp; +__OUTPUT__ deptno | listagg --------+------------------------- 30 | ALLEN,BLAKE,MARTIN,WARD @@ -144,9 +145,10 @@ ENAME) OVER(PARTITION BY DEPTNO) FROM emp; This example includes the `GROUP BY` clause. -```text +```sql edb=# SELECT DEPTNO, LISTAGG(ENAME, ',') WITHIN GROUP (ORDER BY ENAME) FROM emp GROUP BY DEPTNO; +__OUTPUT__ deptno | listagg --------+------------------------- 20 | JONES @@ -165,7 +167,7 @@ The `MEDIAN` function calculates the middle value of an expression from a given ### Synopsis -```text +```sql MEDIAN( ) [ OVER ( [ PARTITION BY... ] ) ] ``` @@ -199,8 +201,9 @@ The return type is determined by the input data type of `expression`. The follow In this example, a query returns the median salary for each department in the `emp` table: -```text +```sql edb=# SELECT * FROM emp; +__OUTPUT__ empno| ename | job | mgr | hiredate | sal | comm | deptno -----+-------+---------+------+-------------------+--------+--------+------- 7369 | SMITH | CLERK | 7902 | 17-DEC-80 00:00:00| 800.00| | 20 @@ -209,8 +212,10 @@ edb=# SELECT * FROM emp; 7566 | JONES | MANAGER | 7839 | 02-APR-81 00:00:00| 2975.00| | 20 7654 | MARTIN| SALESMAN| 7698 | 28-SEP-81 00:00:00| 1250.00| 1400.00| 30 (5 rows) - +``` +```sql edb=# SELECT MEDIAN (SAL) FROM emp; + __OUTPUT__ median -------- 1250 @@ -219,9 +224,10 @@ edb=# SELECT * FROM emp; This example uses the `PARTITION BY` clause with `MEDIAN` in the `emp` table and returns the median salary based on a partition by `deptno`: -```text +```sql edb=# SELECT EMPNO, ENAME, DEPTNO, MEDIAN (SAL) OVER (PARTITION BY DEPTNO) FROM emp; +__OUTPUT__ empno | ename | deptno | median -------+--------+--------+-------- 7369 | SMITH | 20 | 1887.5 @@ -234,9 +240,10 @@ FROM emp; You can compare the `MEDIAN` function with `PERCENTILE_CONT`. In this example, `MEDIAN` generates the same result as `PERCENTILE_CONT`: -```text +```sql edb=# SELECT MEDIAN (SAL), PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY SAL) FROM emp; +__OUTPUT__ median | percentile_cont --------+----------------- 1250 | 1250 @@ -255,13 +262,13 @@ The `STATS_MODE` function takes a set of values as an argument and returns the v ### Synopsis -```text +```sql STATS_MODE( ) ``` Or -```text +```sql STATS_MODE() WITHIN GROUP ( ORDER BY sort_expression ) ``` @@ -279,8 +286,9 @@ The `STATS_MODE` function returns a value that appears frequently. However, if a This example returns the mode of salary in the `emp` table: -```text +```sql edb=# SELECT * FROM emp; +__OUTPUT__ empno| ename | job | mgr | hiredate | sal | comm | deptno ------+-------+---------+------+-------------------+--------+--------+------- 7369 | SMITH | CLERK | 7902 | 17-DEC-80 00:00:00| 800.00| | 20 @@ -289,8 +297,10 @@ edb=# SELECT * FROM emp; 7566 | JONES | MANAGER | 7839 | 02-APR-81 00:00:00| 2975.00| | 20 7654 | MARTIN| SALESMAN| 7698 | 28-SEP-81 00:00:00| 1250.00| 1400.00| 30 (5 rows) - +``` +```sql edb=# SELECT STATS_MODE(SAL) FROM emp; +__OUTPUT__ stats_mode ------------ 1250.00 @@ -299,8 +309,9 @@ edb=# SELECT STATS_MODE(SAL) FROM emp; This example uses `GROUP BY` and `ORDER BY` clauses with `STATS_MODE` in the `emp` table and returns the salary based on a partition by `deptno`: -```text +```sql edb=# SELECT STATS_MODE(SAL) FROM emp GROUP BY DEPTNO ORDER BY DEPTNO; +__OUTPUT__ stats_mode ------------ 800.00 @@ -310,8 +321,9 @@ edb=# SELECT STATS_MODE(SAL) FROM emp GROUP BY DEPTNO ORDER BY DEPTNO; This example uses the `WITHIN GROUP` clause with `STATS_MODE` to perform aggregation on the ordered data set. -```text +```sql SELECT STATS_MODE() WITHIN GROUP(ORDER BY SAL) FROM emp; +__OUTPUT__ stats_mode ------------ 1250.00 @@ -329,7 +341,7 @@ SELECT STATS_MODE() WITHIN GROUP(ORDER BY SAL) FROM emp; ### Synopsis -```text +```sql BIT_AND_AGG ( [DISTINCT | ALL | UNIQUE] ) ``` @@ -347,8 +359,9 @@ The `BIT_AND_AGG` function returns the same value as the data type of the input This example applies the `BIT_AND_AGG` function to the `sal` column in an `emp` table and groups the result by `deptno`: -```text +```sql edb=# SELECT deptno,BIT_AND_AGG(DISTINCT sal) FROM emp GROUP BY deptno; +__OUTPUT__ deptno | bit_and_agg --------+------------- 20 | 2975.00 @@ -367,7 +380,7 @@ edb=# SELECT deptno,BIT_AND_AGG(DISTINCT sal) FROM emp GROUP BY deptno; ### Synopsis -```text +```sql BIT_OR_AGG ( [DISTINCT | ALL | UNIQUE] ) ``` @@ -385,8 +398,9 @@ The `BIT_OR_AGG` function returns the same value as the data type of the input a This example applies `BIT_OR_AGG` to the `sal` column in an `emp` table and groups the result by `deptno`: -```text +```sql edb=# SELECT deptno,BIT_OR_AGG(DISTINCT sal) FROM emp GROUP BY deptno; +__OUTPUT__ deptno | bit_or_agg --------+------------ 20 | 2975.00 diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/12_subquery_expressions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/12_subquery_expressions.mdx index 2b5198940f0..96d25c5d7df 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/12_subquery_expressions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/12_subquery_expressions.mdx @@ -15,7 +15,7 @@ SQL-compliant subquery expressions are available in EDB Postgres Advanced Server The argument of `EXISTS` is an arbitrary `SELECT` statement or subquery. The subquery is evaluated to determine whether it returns any rows. If it returns at least one row, the result of `EXISTS` is `TRUE`. If the subquery returns no rows, the result of `EXISTS` is `FALSE`. -```text +```sql EXISTS(subquery) ``` @@ -27,10 +27,10 @@ Since the result depends only on whether any rows are returned and not on the co This simple example is like an inner join on `deptno`, but it produces at most one output row for each `dept` row, even though there are multiple matching `emp` rows: -```text +```sql SELECT dname FROM dept WHERE EXISTS (SELECT 1 FROM emp WHERE emp.deptno = dept.deptno); - +__OUTPUT__ dname ------------ ACCOUNTING @@ -43,7 +43,7 @@ dept.deptno); The right-hand side is a parenthesized subquery, which must return exactly one column. The left-hand expression is evaluated and compared to each row of the subquery result. The result of `IN` is `TRUE` if any equal subquery row is found. The result is `FALSE` if no equal row is found (including the special case where the subquery returns no rows). -```text +```sql expression IN (subquery) ``` @@ -55,7 +55,7 @@ As with `EXISTS`, you can't assume that the subquery will evaluate completely. The right-hand side is a parenthesized subquery that must return exactly one column. The left-hand expression is evaluated and compared to each row of the subquery result. The result of `NOT IN` is `TRUE` if only unequal subquery rows are found (including the special case where the subquery returns no rows). The result is `FALSE` if any equal row is found. -```text +```sql expression NOT IN (subquery) ``` @@ -67,7 +67,7 @@ As with `EXISTS`, you can't assume that the subquery will evaluate completely. The right-hand side is a parenthesized subquery, which must return exactly one column. The left-hand expression is evaluated and compared to each row of the subquery result using the given operator, which must yield a Boolean result. The result of `ANY` is `TRUE` if any true result is obtained. The result is `FALSE` if no true result is found (including the special case where the subquery returns no rows). -```text +```sql expression operator ANY (subquery) expression operator SOME (subquery) ``` @@ -82,7 +82,7 @@ As with `EXISTS`, you can't assume that the subquery will evaluate completely. The right-hand side is a parenthesized subquery, which must return exactly one column. The left-hand expression is evaluated and compared to each row of the subquery result using the given operator, which must yield a Boolean result. The result of `ALL` is `TRUE` if all rows yield true (including the special case where the subquery returns no rows). The result is `FALSE` if any false result is found. The result is `NULL` if the comparison doesn't return `FALSE` for any row and it returns `NULL` for at least one row. -```text +```sql expression operator ALL (subquery) ``` diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/13_identifier_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/13_identifier_functions.mdx index 5aab4466c74..36e7cea236a 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/13_identifier_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/13_identifier_functions.mdx @@ -10,7 +10,7 @@ Identifier functions that information about the instance and session. The `SYS_GUID` function generates and returns a globally unique identifier. The identifier takes the form of 16 bytes of `RAW` data. The `SYS_GUID` function is based on the `uuid-ossp` module to generate universally unique identifiers. The signature is: -```text +```sql SYS_GUID() ``` @@ -18,12 +18,13 @@ SYS_GUID() This example adds a column to the table `EMP`, inserts a unique identifier, and returns a `16-byte RAW` value: -```text +```sql edb=# CREATE TABLE EMP(C1 RAW (16) DEFAULT SYS_GUID() PRIMARY KEY, C2 INT); CREATE TABLE edb=# INSERT INTO EMP(C2) VALUES (1); INSERT 0 1 edb=# SELECT * FROM EMP; +__OUTPUT__ c1 | c2 ------------------------------------+---- \xb944970d3a1b42a7a2119265c49cbb7f | 1 @@ -34,7 +35,7 @@ edb=# SELECT * FROM EMP; The `USERENV` function retrieves information about the current session. The signature is: -```text +```sql USERENV() ``` @@ -52,8 +53,9 @@ The `parameter` specifies a value to return from the current session. The table This example returns the `ISDBA` parameter of the current session: -```text -edb=# SELECT USERENV('ISDBA') FROM DUAL; +```sql +edb=# SELECT USERENV('ISDBA') FROM DUAL; +__OUTPUT__ userenv --------- TRUE @@ -62,8 +64,9 @@ edb=# SELECT USERENV('ISDBA') FROM DUAL; This example returns the `LANG` parameter of the current session: -```text -edb=# SELECT USERENV('LANG') FROM DUAL; +```sql +edb=# SELECT USERENV('LANG') FROM DUAL; +__OUTPUT__ userenv --------- en @@ -72,8 +75,9 @@ edb=# SELECT USERENV('LANG') FROM DUAL; This example returns the `LANGUAGE` parameter of the current session: -```text -edb=# SELECT USERENV('LANGUAGE') FROM DUAL; +```sql +edb=# SELECT USERENV('LANGUAGE') FROM DUAL; +__OUTPUT__ userenv ------------------- English_USA.UTF-8 @@ -82,8 +86,9 @@ edb=# SELECT USERENV('LANGUAGE') FROM DUAL; This example returns the `TERMINAL` identifier: -```text +```sql edb=# SELECT USERENV('TERMINAL') FROM DUAL; +__OUTPUT__ userenv --------- [local] @@ -92,8 +97,9 @@ edb=# SELECT USERENV('TERMINAL') FROM DUAL; This example returns the `SID` number of the current session: -```text +```sql edb=# SELECT USERENV('SID') FROM DUAL; +__OUTPUT__ userenv --------- 56867 @@ -104,13 +110,13 @@ edb=# SELECT USERENV('SID') FROM DUAL; The `SYS_CONTEXT` function returns the value of a `parameter` associated with the context `namespace` in the current session. The signature is: -```text +```sql SYS_CONTEXT(, ) ``` Or -```text +```sql SYS_CONTEXT(, ) ``` @@ -138,8 +144,9 @@ In these examples, the built-in `USERENV` namespace is used with the `SYS_CONTEX This example returns the `ISDBA` parameter of the current session: -```text +```sql edb=# SELECT SYS_CONTEXT('USERENV','ISDBA') AS ISDBA FROM DUAL; +__OUTPUT__ isdba ------- TRUE @@ -148,8 +155,9 @@ edb=# SELECT SYS_CONTEXT('USERENV','ISDBA') AS ISDBA FROM DUAL; This example returns the `LANG` parameter of the current session: -```text +```sql edb=# SELECT SYS_CONTEXT('USERENV','LANG') AS LANG FROM DUAL; +__OUTPUT__ lang ------ en @@ -158,8 +166,9 @@ edb=# SELECT SYS_CONTEXT('USERENV','LANG') AS LANG FROM DUAL; This example returns the `LANGUAGE` parameter of the current session: -```text +```sql edb=# SELECT SYS_CONTEXT('USERENV','LANGUAGE') AS LANGUAGE FROM DUAL; +__OUTPUT__ language ------------------- English_USA.UTF-8 @@ -168,8 +177,9 @@ edb=# SELECT SYS_CONTEXT('USERENV','LANGUAGE') AS LANGUAGE FROM DUAL; This example returns the `TERMINAL` identifier: -```text +```sql edb=# SELECT SYS_CONTEXT('USERENV','TERMINAL') AS TERMINAL FROM DUAL; +__OUTPUT__ terminal ---------- [local] @@ -178,8 +188,9 @@ edb=# SELECT SYS_CONTEXT('USERENV','TERMINAL') AS TERMINAL FROM DUAL; This example returns the `SID` number of the current session: -```text +```sql edb=# SELECT SYS_CONTEXT('USERENV','SID') AS SID FROM DUAL; +__OUTPUT__ sid ------- 56867 diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/14_bitwise_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/14_bitwise_functions.mdx index 1c2852d9893..97e4ca1a2e9 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/14_bitwise_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/14_bitwise_functions.mdx @@ -10,7 +10,7 @@ The bitwise functions include `BITAND` and `BITOR`. The `BITAND` function performs a bitwise `AND` operation and returns a value based on the data type of input argument. The signature is: -```text +```sql BITAND(, ) ``` @@ -24,8 +24,9 @@ The `BITAND` function returns the same value as the data type of the input argum This example performs an `AND` operation on the numbers 10 and 11. -```text +```sql edb=# SELECT BITAND(10,11) FROM DUAL; +__OUTPUT__ bitand -------- 10 @@ -36,7 +37,7 @@ edb=# SELECT BITAND(10,11) FROM DUAL; The `BITOR` function performs a bitwise `OR` operation and returns a value based on the data type of the input argument. The signature is: -```text +```sql BITOR(, ) ``` @@ -50,8 +51,9 @@ The `BITOR` function returns the same value as the data type of the input argume This example performs an `OR` operation on the numbers 10 and 11. -```text +```sql edb=# SELECT BITOR(10,11) FROM DUAL; +__OUTPUT__ bitor ------- 11 @@ -70,8 +72,9 @@ The bitwise operators perform the same operation as `BITAND` and `BITOR`. The bi This example uses the `&` operator and returns the output as `BITAND` of the input: -```text +```sql edb=# SELECT 10&11 FROM DUAL; +__OUTPUT__ ?column? ---------- 10 @@ -80,8 +83,9 @@ edb=# SELECT 10&11 FROM DUAL; This example uses the `|` operator and returns the output as `BITOR` of the input: -```text +```sql edb=# SELECT 10|11 FROM DUAL; +__OUTPUT__ ?column? ---------- 11 diff --git a/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/02_case_sensitivity.mdx b/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/02_case_sensitivity.mdx index ca30ccfaa6a..a8e8dd34b95 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/02_case_sensitivity.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/02_case_sensitivity.mdx @@ -10,12 +10,14 @@ Character and string constants, however, are case sensitive. Data retrieved from The statement `DBMS_OUTPUT.PUT_LINE('Hello World!');` produces the following output: -```text +```sql +__OUTPUT__ Hello World! ``` The statement `DBMS_OUTPUT.PUT_LINE('HELLO WORLD!');` produces this output: -```text +```sql +__OUTPUT__ HELLO WORLD! ``` diff --git a/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/06_user_defined_pl_sql_subtypes.mdx b/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/06_user_defined_pl_sql_subtypes.mdx index ae1c4f72f0c..fdbddbd63a2 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/06_user_defined_pl_sql_subtypes.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/01_basic_spl_elements/06_user_defined_pl_sql_subtypes.mdx @@ -12,13 +12,13 @@ EDB Postgres Advanced Server supports user-defined PL/SQL subtypes and subtype a You can define a subtype in the declaration of a PL function, procedure, anonymous block, or package. The syntax is: -```text +```sql SUBTYPE IS [()] [NOT NULL] ``` Where `constraint` is: -``` +```text { [, ]} | ``` @@ -57,13 +57,13 @@ A subtype that is based on a column inherits the column size constraints, but th To create an unconstrained subtype, use the `SUBTYPE` command to specify the new subtype name and the name of the type on which the subtype is based. For example, the following command creates a subtype named `address` that has all of the attributes of the type `CHAR`: -``` +```sql SUBTYPE address IS CHAR; ``` You can also create a subtype (constrained or unconstrained) that's a subtype of another subtype: -``` +```sql SUBTYPE cust_address IS address NOT NULL; ``` @@ -73,7 +73,7 @@ This command creates a subtype named `cust_address` that shares all of the attri Include a `length` value when creating a subtype that's based on a character type to define the maximum length of the subtype. For example: -``` +```sql SUBTYPE acct_name IS VARCHAR (15); ``` @@ -81,7 +81,7 @@ This example creates a subtype named `acct_name` that's based on a `VARCHAR` dat Include values for `precision` to specify the maximum number of digits in a value of the subtype. Optionally, include values for `scale` to specify the number of digits to the right of the decimal point when constraining a numeric base type. For example: -``` +```sql SUBTYPE acct_balance IS NUMBER (5, 2); ``` @@ -98,7 +98,7 @@ If a formal argument is declared as a constrained subtype: You can use `%TYPE` notation to declare a subtype anchored to a column. For example: -``` +```sql SUBTYPE emp_type IS emp.empno%TYPE ``` diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/02_spl_block_structure.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/02_spl_block_structure.mdx index 1e7b39d64ef..52ab341208f 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/02_spl_block_structure.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/02_spl_block_structure.mdx @@ -16,7 +16,7 @@ You can include an exception section in the `BEGIN - END` block. The exception s The following is the general structure of a block: -```text +```sql [ [ DECLARE ] ] @@ -38,7 +38,7 @@ The following is the general structure of a block: The following is the simplest possible block, consisting of the `NULL` statement in the executable section. The `NULL` statement is an executable statement that does nothing. -```text +```sql BEGIN NULL; END; @@ -46,7 +46,7 @@ END; The following block contains a declaration section as well as the executable section: -```text +```sql DECLARE v_numerator NUMBER(2); v_denominator NUMBER(2); @@ -62,13 +62,14 @@ END; In this example, three numeric variables are declared of data type `NUMBER`. Values are assigned to two of the variables, and one number is divided by the other. Results are stored in a third variable and then displayed. The output is: -```text +```sql +__OUTPUT__ 75 divided by 14 is 5.36 ``` The following block consists of a declaration, an executable, and an exception: -```text +```sql DECLARE v_numerator NUMBER(2); v_denominator NUMBER(2); @@ -87,6 +88,7 @@ END; The following output shows that the statement in the exception section is executed as a result of the division by zero: -```text +```sql +__OUTPUT__ An exception occurred ``` diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/01_creating_a_procedure.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/01_creating_a_procedure.mdx index ab1a7f4dcd2..8692f2c7794 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/01_creating_a_procedure.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/01_creating_a_procedure.mdx @@ -13,7 +13,7 @@ If you include a schema name, then the procedure is created in the specified sch To update the definition of an existing procedure, use `CREATE OR REPLACE PROCEDURE`. You can't change the name or argument types of a procedure this way. Attempting to do so creates a new, distinct procedure. When using `OUT` parameters, you can't change the types of any `OUT` parameters except by dropping the procedure. -```text +```sql CREATE [OR REPLACE] PROCEDURE [ () ] [ IMMUTABLE @@ -145,7 +145,7 @@ Where: This example shows a simple procedure that takes no parameters: -```text +```sql CREATE OR REPLACE PROCEDURE simple_procedure IS BEGIN @@ -157,7 +157,7 @@ Store the procedure in the database by entering the procedure code in EDB Postgr This example shows using the `AUTHID DEFINER` and `SET` clauses in a procedure declaration. The `update_salary` procedure conveys the privileges of the role that defined the procedure to the role that's calling the procedure while the procedure executes. -```text +```sql CREATE OR REPLACE PROCEDURE update_salary(id INT, new_salary NUMBER) SET SEARCH_PATH = 'public' SET WORK_MEM = '1MB' AUTHID DEFINER IS diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/02_calling_a_procedure.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/02_calling_a_procedure.mdx index 0766eee4110..5a12f10447b 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/02_calling_a_procedure.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/02_calling_a_procedure.mdx @@ -23,7 +23,7 @@ Where: This example calls the procedure from an anonymous block: -```text +```sql BEGIN simple_procedure; END; diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/03_deleting_a_procedure.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/03_deleting_a_procedure.mdx index 581d5dbdc52..8aa1bb19d26 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/03_deleting_a_procedure.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/04_procedures_overview/03_deleting_a_procedure.mdx @@ -6,7 +6,7 @@ title: "Deleting a procedure" You can delete a procedure from the database using the `DROP PROCEDURE` command. -```text +```sql DROP PROCEDURE [ IF EXISTS ] [ () ] [ CASCADE | RESTRICT ]; ``` @@ -20,6 +20,6 @@ Where `name` is the name of the procedure to drop. This example drops the procedure `simple_procedure`: -```text +```sql DROP PROCEDURE simple_procedure; ``` diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/01_creating_a_function.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/01_creating_a_function.mdx index 96f9501f40b..4506c1e876e 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/01_creating_a_function.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/01_creating_a_function.mdx @@ -13,7 +13,7 @@ If a schema name is included, then the function is created in the specified sche To update the definition of an existing function, use `CREATE OR REPLACE FUNCTION`. You can't change the name or argument types of a function this way. If you try to, you instead create a new, distinct function. Also, `CREATE OR REPLACE FUNCTION` doesn't let you change the return type of an existing function. To do that, you must drop and recreate the function. When using `OUT` parameters, you can't change the types of any `OUT` parameters except by dropping the function. -```text +```sql CREATE [ OR REPLACE ] FUNCTION [ () ] RETURN [ @@ -138,7 +138,7 @@ Where: This example shows a simple function that takes no parameters: -```text +```sql CREATE OR REPLACE FUNCTION simple_function RETURN VARCHAR2 IS @@ -149,7 +149,7 @@ END simple_function; This function takes two input parameters: -```text +```sql CREATE OR REPLACE FUNCTION emp_comp ( p_sal NUMBER, p_comm NUMBER @@ -162,7 +162,7 @@ END emp_comp; This example uses the `AUTHID CURRENT_USER` clause and `STRICT` keyword in a function declaration: -```text +```sql CREATE OR REPLACE FUNCTION dept_salaries(dept_id int) RETURN NUMBER STRICT AUTHID CURRENT_USER diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/02_calling_a_function.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/02_calling_a_function.mdx index df12fe4cc2c..7bbbbea8e09 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/02_calling_a_function.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/02_calling_a_function.mdx @@ -19,7 +19,7 @@ You can use a function anywhere an expression can appear in an SPL statement. In This example shows how to call the function from another SPL program: -```text +```sql BEGIN DBMS_OUTPUT.PUT_LINE(simple_function); END; @@ -29,10 +29,10 @@ That's All Folks! You typically use a function in a SQL statement, as this example shows: -```text +```sql SELECT empno "EMPNO", ename "ENAME", sal "SAL", comm "COMM", emp_comp(sal, comm) "YEARLY COMPENSATION" FROM emp; - +__OUTPUT__ EMPNO | ENAME | SAL | COMM | YEARLY COMPENSATION -------+--------+---------+---------+--------------------- 7369 | SMITH | 800.00 | | 19200.00 diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/03_deleting_a_function.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/03_deleting_a_function.mdx index 4bb27178cc3..c180f23acab 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/03_deleting_a_function.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/05_functions_overview/03_deleting_a_function.mdx @@ -6,7 +6,7 @@ title: "Deleting a function" You can delete a function from the database using `DROP FUNCTION`. -```text +```sql DROP FUNCTION [ IF EXISTS ] [ () ] [ CASCADE | RESTRICT ]; ``` @@ -20,6 +20,6 @@ Where `name` is the name of the function to drop. This example drops the function `simple_function`: -```text +```sql DROP FUNCTION simple_function; ``` diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/01_positional_vs_named_parameter_notation.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/01_positional_vs_named_parameter_notation.mdx index 43389136184..664470f37d0 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/01_positional_vs_named_parameter_notation.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/01_positional_vs_named_parameter_notation.mdx @@ -10,7 +10,7 @@ To specify parameters using named notation, list the name of each parameter foll This example uses positional and named parameter notation: -```text +```sql CREATE OR REPLACE PROCEDURE emp_info ( p_deptno IN NUMBER, p_empno IN OUT NUMBER, @@ -26,13 +26,13 @@ END; To call the procedure using positional notation, pass the following: -``` +```sql emp_info(30, 7455, 'Clark'); ``` To call the procedure using named notation, pass the following: -``` +```sql emp_info(p_ename =>'Clark', p_empno=>7455, p_deptno=>30); ``` @@ -40,7 +40,7 @@ If you used named notation, you don't need to rearrange a procedure’s paramete When an argument has a default value and the argument isn't a trailing argument, you must use named notation to call the procedure or function. This example shows a procedure with two leading default arguments: -```text +```sql CREATE OR REPLACE PROCEDURE check_balance ( p_customerID IN NUMBER DEFAULT NULL, p_balance IN NUMBER DEFAULT NULL, @@ -71,7 +71,7 @@ END; You can omit nontrailing argument values when you call this procedure only by using named notation. When using positional notation, only trailing arguments are allowed to default. You can call this procedure with the following arguments: -``` +```sql check_balance(p_customerID => 10, p_amount = 500.00) check_balance(p_balance => 1000.00, p_amount = 500.00) @@ -79,7 +79,7 @@ check_balance(p_balance => 1000.00, p_amount = 500.00) You can use a combination of positional and named notation, referred to as *mixed* notation, to specify parameters. This example shows using mixed parameter notation: -```text +```sql CREATE OR REPLACE PROCEDURE emp_info ( p_deptno IN NUMBER, p_empno IN OUT NUMBER, @@ -95,7 +95,7 @@ END; You can call the procedure using mixed notation: -``` +```sql emp_info(30, p_ename =>'Clark', p_empno=>7455); ``` diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/03_using_default_values_in_parameters.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/03_using_default_values_in_parameters.mdx index d6b5e832da4..0529a8c020a 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/03_using_default_values_in_parameters.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/03_using_default_values_in_parameters.mdx @@ -24,7 +24,7 @@ The default value is evaluated every time you invoke the function or procedure. This example uses the assignment operator to set a default value of `SYSDATE` into the parameter `hiredate:` -```text +```sql CREATE OR REPLACE PROCEDURE hire_emp ( p_empno NUMBER, p_ename VARCHAR2, @@ -41,19 +41,19 @@ END hire_emp; If the parameter declaration includes a default value, you can omit the parameter from the actual parameter list when you call the procedure. Calls to the sample procedure `(hire_emp)` must include two arguments: the employee number `(p_empno)` and employee name `(p_empno)`. The third parameter `(p_hiredate)` defaults to the value of `SYSDATE:` -```text +```sql hire_emp (7575, Clark) ``` If you do include a value for the actual parameter when you call the procedure, that value takes precedence over the default value. This command adds an employee with a hiredate of `February 15, 2010`, regardless of the current value of `SYSDATE`. -```text +```sql hire_emp (7575, Clark, 15-FEB-2010) ``` You can write the same procedure by substituting the `DEFAULT` keyword for the assignment operator: -```text +```sql CREATE OR REPLACE PROCEDURE hire_emp ( p_empno NUMBER, p_ename VARCHAR2, diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/index.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/index.mdx index b1c3ca92907..6ff6d80827d 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/06_procedure_and_function_parameters/index.mdx @@ -25,7 +25,7 @@ The following is the general format of a formal parameter declaration. This example shows a procedure that takes parameters: -```text +```sql CREATE OR REPLACE PROCEDURE emp_query ( p_deptno IN NUMBER, p_empno IN OUT NUMBER, @@ -52,7 +52,7 @@ In this example, `p_deptno` is an `IN` formal parameter, `p_empno` and `p_ename` The `emp_query` procedure can be called by another program, passing it the actual parameters. This example is another SPL program that calls `emp_query`. -```text +```sql DECLARE v_deptno NUMBER(2); v_empno NUMBER(4); @@ -78,7 +78,8 @@ In this example, `v_deptno`, `v_empno`, `v_ename`, `v_job`, `v_hiredate`, and `v The output from the example is: -```text +```sql +__OUTPUT__ Department : 30 Employee No: 7900 Name : JAMES diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/01_creating_a_subprocedure.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/01_creating_a_subprocedure.mdx index 67fd019149e..2368a794a67 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/01_creating_a_subprocedure.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/01_creating_a_subprocedure.mdx @@ -12,7 +12,7 @@ The phrase *the identifier is local to the block* means that the identifier (tha You can declare subprocedures only after all the other variable, cursor, and type declarations included in the declaration section. Subprograms must be the last set of declarations. -```text +```sql PROCEDURE [ () ] { IS | AS } [ PRAGMA AUTONOMOUS_TRANSACTION; ] @@ -38,7 +38,7 @@ Where: This example is a subprocedure in an anonymous block: -```text +```sql DECLARE PROCEDURE list_emp IS @@ -65,7 +65,8 @@ END; Invoking this anonymous block produces the following output: -```text +```sql +__OUTPUT__ Subprocedure list_emp: EMPNO ENAME ----- ------- @@ -87,7 +88,7 @@ EMPNO ENAME This example is a subprocedure in a trigger: -```text +```sql CREATE OR REPLACE TRIGGER dept_audit_trig AFTER INSERT OR UPDATE OR DELETE ON dept DECLARE @@ -114,8 +115,8 @@ END; Invoking this trigger produces the following output: -```text +```sql INSERT INTO dept VALUES (50,'HR','DENVER'); - +__OUTPUT__ User enterprisedb added dept on 2016-07-26 ``` diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/02_creating_a_subfunction.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/02_creating_a_subfunction.mdx index bf0a6f86351..e780078cdd6 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/02_creating_a_subfunction.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/02_creating_a_subfunction.mdx @@ -10,7 +10,7 @@ The term *block* refers to the SPL block structure consisting of an optional dec The phrase *the identifier is local to the block* means that the identifier (that is, a variable, cursor, type, or subprogram) is declared in the declaration section of that block and is therefore accessible by the SPL code in the executable section and optional exception section of that block. -```text +```sql FUNCTION [ () ] RETURN { IS | AS } @@ -39,7 +39,7 @@ Where: This example shows the use of a recursive subfunction: -```text +```sql DECLARE FUNCTION factorial ( n BINARY_INTEGER @@ -61,7 +61,8 @@ END; The following is the output: -```text +```sql +__OUTPUT__ 1! = 1 2! = 2 3! = 6 diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/03_block_relationships.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/03_block_relationships.mdx index f655e25b377..cab54f4a6c8 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/03_block_relationships.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/03_block_relationships.mdx @@ -23,7 +23,7 @@ The two vertical lines on the left-hand side of the blocks indicate there are tw The relationship of each block with its ancestors is shown on the right-hand side of the blocks. Three hierarchical paths are formed when progressing up the hierarchy from the lowest-level child blocks. The first consists of `block_0`, `block_1a`, `block_2a`, and `block_3`. The second is `block_0`, `block_1a`, and `block_2b`. The third is `block_0`, `block_1b`, and `block_2b`. -```text +```sql CREATE PROCEDURE block_0 IS . diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/04_invoking_subprograms.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/04_invoking_subprograms.mdx index ec00f66d497..1f28dba9f1d 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/04_invoking_subprograms.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/04_invoking_subprograms.mdx @@ -55,7 +55,7 @@ This example contains a single hierarchy of blocks contained in the standalone p Access to the descendant of the local procedure `level_2a`, which is the procedure `level_3a`, isn't permitted, with or without qualifiers. These calls are commented out in the example. -```text +```sql CREATE OR REPLACE PROCEDURE level_0 IS PROCEDURE level_1a @@ -90,11 +90,11 @@ END level_0; When the standalone procedure is invoked, the output is the following. This output indicates that the procedure `level_2a` is successfully invoked from the calls in the executable section of the procedure `level_1a`: -```text +```sql BEGIN level_0; END; - +__OUTPUT__ BLOCK level_0 .. BLOCK level_1a ...... BLOCK level_2a @@ -115,7 +115,7 @@ This example shows how to invoke subprograms that are declared in parent and oth In this example, the executable section of procedure `level_3a` invokes the procedure `level_2a`, which is its parent block. `v_cnt` is used to avoid an infinite loop. -```text +```sql CREATE OR REPLACE PROCEDURE level_0 IS v_cnt NUMBER(2) := 0; @@ -152,11 +152,11 @@ END level_0; The following is the output: -```text +```sql BEGIN level_0; END; - +__OUTPUT__ BLOCK level_0 .. BLOCK level_1a ...... BLOCK level_2a @@ -173,7 +173,7 @@ END BLOCK level_0 In a similar example, the executable section of the procedure `level_3a` invokes the procedure `level_1a`, which is further up the ancestor hierarchy. `v_cnt` is again used to avoid an infinite loop. -```text +```sql CREATE OR REPLACE PROCEDURE level_0 IS v_cnt NUMBER(2) := 0; @@ -210,11 +210,11 @@ END level_0; The following is the output: -```text +```sql BEGIN level_0; END; - +__OUTPUT__ BLOCK level_0 .. BLOCK level_1a ...... BLOCK level_2a @@ -239,7 +239,7 @@ In this example, the executable section of the procedure `level_1b` invokes the Invoking `level_2a` or, equivalently, `level_1a.level_2a` from the procedure `level_1b` is commented out as this call results in an error. Invoking a descendent subprogram (`level_2a`) of a sibling block (`level_1a`) isn't permitted. -```text +```sql CREATE OR REPLACE PROCEDURE level_0 IS v_cnt NUMBER(2) := 0; @@ -273,11 +273,11 @@ END level_0; The following is the output: -```text +```sql BEGIN level_0; END; - +__OUTPUT__ BLOCK level_0 .. BLOCK level_1b .. BLOCK level_1a @@ -288,7 +288,7 @@ END BLOCK level_0 In this example, the procedure `level_1a` is successfully invoked. It's the sibling of the procedure `level_1b`, which is an ancestor of the procedure `level_3b`. -```text +```sql CREATE OR REPLACE PROCEDURE level_0 IS PROCEDURE level_1a @@ -328,11 +328,11 @@ END level_0; The following is the output: -```text +```sql BEGIN level_0; END; - +__OUTPUT__ BLOCK level_0 .. BLOCK level_1b ...... BLOCK level_2b diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/05_using_forward_declarations.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/05_using_forward_declarations.mdx index bd8d97796e7..8947ddd5961 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/05_using_forward_declarations.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/05_using_forward_declarations.mdx @@ -14,7 +14,7 @@ You must specify the full subprogram consisting of the optional declaration sect Typical use of a forward declaration is when two subprograms invoke each other: -```text +```sql DECLARE FUNCTION add_one ( p_add IN NUMBER @@ -47,7 +47,8 @@ Subfunction `test_max` invokes subfunction `add_one`, which also invokes subfunc The resulting output from the anonymous block is as follows: -```text +```sql +__OUTPUT__ Increase by 1 Increase by 1 Final value is 5 diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/06_overloading_subprograms.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/06_overloading_subprograms.mdx index adaba5e4452..ddd63fb5a8f 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/06_overloading_subprograms.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/06_overloading_subprograms.mdx @@ -39,7 +39,7 @@ You can determine if certain data types are aliases of other types by displaying For example, the following table definition contains some data types and their aliases: -```text +```sql CREATE TABLE data_type_aliases ( dt_BLOB BLOB, dt_LONG_RAW LONG RAW, @@ -64,7 +64,7 @@ CREATE TABLE data_type_aliases ( Using the PSQL `\d` command to display the table definition, the Type column displays the data type internally assigned to each column based on its data type in the table definition. -```text +```sql \d data_type_aliases Column | Type | Modifiers ---------------------+----------------------+----------- @@ -99,7 +99,7 @@ For certain pairs of data types used for overloading, you might need to cast the This example shows a group of overloaded subfunctions invoked from an anonymous block. The executable section of the anonymous block contains the use of the `CAST` function to invoke overloaded functions with certain data types. -```text +```sql DECLARE FUNCTION add_it ( p_add_1 IN BINARY_INTEGER, @@ -145,7 +145,8 @@ END; The following is the output displayed from the anonymous block: -```text +```sql +__OUTPUT__ add_it BINARY_INTEGER: 75.0000 add_it NUMBER: 75.6666 add_it NUMBER: 75.6666 diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/07_accessing_subprogram_variables.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/07_accessing_subprogram_variables.mdx index 3c59b62d730..d7c78082d95 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/07_accessing_subprogram_variables.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/07_subprograms_subprocedures_and_subfunctions/07_accessing_subprogram_variables.mdx @@ -48,7 +48,7 @@ You can't access the following location of variables relative to the block from This example shows how variables in various blocks are accessed, with and without qualifiers. The lines that are commented out show attempts to access variables that result in an error. -```text +```sql CREATE OR REPLACE PROCEDURE level_0 IS v_level_0 VARCHAR2(20) := 'Value from level_0'; @@ -100,11 +100,11 @@ END level_0; The following is the output showing the content of each variable when the procedure is invoked: -```text +```sql BEGIN level_0; END; - +__OUTPUT__ BLOCK level_0 .. v_level_0: Value from level_0 .. BLOCK level_1a @@ -125,7 +125,7 @@ END BLOCK level_0 This example shows similar access attempts when all variables in all blocks have the same name: -```text +```sql CREATE OR REPLACE PROCEDURE level_0 IS v_common VARCHAR2(20) := 'Value from level_0'; @@ -170,11 +170,11 @@ END level_0; The following is the output showing the content of each variable when the procedure is invoked: -```text +```sql BEGIN level_0; END; - +__OUTPUT__ BLOCK level_0 .. v_common: Value from level_0 .. BLOCK level_1a @@ -196,7 +196,7 @@ END BLOCK level_0 You can also use the labels on anonymous blocks to qualify access to variables. This example shows variable access in a set of nested anonymous blocks: -```text +```sql DECLARE v_common VARCHAR2(20) := 'Value from level_0'; BEGIN @@ -234,7 +234,8 @@ END; The following is the output showing the content of each variable when the anonymous block is invoked: -```text +```sql +__OUTPUT__ BLOCK level_0 .. v_common: Value from level_0 .. BLOCK level_1a @@ -253,7 +254,7 @@ END BLOCK level_0 This example is an object type whose object type method, `display_emp`, contains the record type `emp_typ` and the subprocedure `emp_sal_query`. The record variable `r_emp` declared locally to `emp_sal_query` can access the record type `emp_typ` declared in the parent block `display_emp`. -```text +```sql CREATE OR REPLACE TYPE emp_pay_obj_typ AS OBJECT ( empno NUMBER(4), @@ -305,14 +306,14 @@ END; The following is the output displayed when an instance of the object type is created and the procedure `display_emp` is invoked: -```text +```sql DECLARE v_emp EMP_PAY_OBJ_TYP; BEGIN v_emp := emp_pay_obj_typ(7900); v_emp.display_emp; END; - +__OUTPUT__ Employee # : 7900 Name : JAMES Job : CLERK @@ -324,7 +325,7 @@ Employee's salary does not exceed the department average of 1566.67 This example is a package with three levels of subprocedures. A record type, collection type, and cursor type declared in the upper-level procedure can be accessed by the descendent subprocedure. -```text +```sql CREATE OR REPLACE PACKAGE emp_dept_pkg IS PROCEDURE display_emp ( @@ -379,11 +380,11 @@ END; The following is the output displayed when the top-level package procedure is invoked: -```text +```sql BEGIN emp_dept_pkg.display_emp(20); END; - +__OUTPUT__ EMPNO ENAME ----- ------- 7369 SMITH diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/08_compilation_errors_in_procedures_and_functions.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/08_compilation_errors_in_procedures_and_functions.mdx index f29eb826431..a933d4251ad 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/08_compilation_errors_in_procedures_and_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/08_compilation_errors_in_procedures_and_functions.mdx @@ -14,13 +14,13 @@ When the EDB Postgres Advanced Server parsers compile a procedure or function, t You can use the `SET` command to specify a value for `spl.max_error_count` for your current session. The syntax is: -```text +```sql SET spl.max_error_count = ``` Where `number_of_errors` specifies the number of SPL errors that can occur before the server stops compiling. For example: -``` +```sql SET spl.max_error_count = 6 ``` @@ -30,7 +30,7 @@ To save time when developing new code or when importing code from another source If you instruct the server to continue parsing in spite of errors in the SPL code in a program body, and the parser encounters an error in a segment of SQL code, there can be more errors in any SPL or SQL code that follows the incorrect SQL code. For example, the following function results in two errors: -```text +```sql CREATE FUNCTION computeBonus(baseSalary number) RETURN number AS BEGIN @@ -51,7 +51,7 @@ ERROR: compilation of SPL function/procedure "computebonus" failed due to 2 err This example adds a `SELECT` statement to the example. The error in the `SELECT` statement masks the other errors that follow. -```text +```sql CREATE FUNCTION computeBonus(employeeName number) RETURN number AS BEGIN SELECT salary INTO baseSalary FROM emp diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/01_execute_privilege.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/01_execute_privilege.mdx index d7480a92c0b..60100e5067b 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/01_execute_privilege.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/01_execute_privilege.mdx @@ -15,13 +15,13 @@ Whenever an SPL program is created in EDB Postgres Advanced Server, `EXECUTE` pr You can remove this default privilege by using the `REVOKE EXECUTE` command. For example: -```text +```sql REVOKE EXECUTE ON PROCEDURE list_emp FROM PUBLIC; ``` You can then grant explicit `EXECUTE` privilege on the program to individual users or groups. -```text +```sql GRANT EXECUTE ON PROCEDURE list_emp TO john; ``` diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/02_database_object_name_resolution.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/02_database_object_name_resolution.mdx index 93a37aef223..28230b09235 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/02_database_object_name_resolution.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/02_database_object_name_resolution.mdx @@ -8,8 +8,9 @@ You can reference a database object inside an SPL program either by its qualifie Locating an object with an unqualified name, however, requires the use of the current user’s search path. When a user becomes the current user of a session, a default search path is always associated with that user. The search path consists of a list of schemas that are searched in left-to-right order for locating an unqualified database object reference. The object is considered nonexistent if it can’t be found in any of the schemas in the search path. You can display the default search path in PSQL using the `SHOW search_path` command: -```text +```sql edb=# SHOW search_path; +__OUTPUT__ search_path ----------------- "$user", public diff --git a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/05_security_example.mdx b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/05_security_example.mdx index 5fbff0041b5..f19ec37830a 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/05_security_example.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/02_spl_programs/09_program_security/05_security_example.mdx @@ -18,13 +18,13 @@ Programs `get_dept_name` and `hire_emp` in the `emp_admin` package are then exec As user `enterprisedb`, create the `hr` database: -```text +```sql CREATE DATABASE hr; ``` Switch to the hr database and create the users: -```text +```sql \c hr enterprisedb CREATE USER hr_mgr IDENTIFIED BY password; CREATE USER sales_mgr IDENTIFIED BY password; @@ -34,7 +34,7 @@ CREATE USER sales_mgr IDENTIFIED BY password; Create the entire sample application, owned by `hr_mgr`, in the `hr_mgr` schema. -```text +```sql \c - hr_mgr \i /usr/edb/as14/share/edb-sample.sql @@ -56,7 +56,7 @@ COMMIT Create a subset of the `emp` table owned by `sales_mgr` in the `sales_mgr` schema. -```text +```sql \c – hr_mgr GRANT USAGE ON SCHEMA hr_mgr TO sales_mgr; \c – sales_mgr @@ -69,7 +69,7 @@ The `GRANT USAGE ON SCHEMA` command allows `sales_mgr` access into the `hr_mgr` Remove all privileges to later illustrate the minimum required privileges needed. -```text +```sql \c – hr_mgr REVOKE USAGE ON SCHEMA hr_mgr FROM sales_mgr; REVOKE ALL ON dept FROM PUBLIC; @@ -85,7 +85,7 @@ REVOKE EXECUTE ON PACKAGE emp_admin FROM PUBLIC; While connected as user `hr_mgr`, add the `AUTHID CURRENT_USER` clause to the `list_emp` program and resave it in EDB Postgres Advanced Server. When performing this step, be sure you're logged in as `hr_mgr`. Otherwise the modified program might end up in the `public` schema instead of in the `hr_mgr` schema. -```text +```sql CREATE OR REPLACE PROCEDURE list_emp AUTHID CURRENT_USER IS @@ -114,7 +114,7 @@ Also, after the `BEGIN` statement, fully qualify the reference `new_empno` to `h When resaving the program, be sure you're logged in as `hr_mgr`. Otherwise the modified program might end up in the `public` schema instead of in the `hr_mgr` schema. -```text +```sql CREATE OR REPLACE FUNCTION hire_clerk ( p_ename VARCHAR2, p_deptno NUMBER @@ -159,7 +159,7 @@ END; While connected as user `hr_mgr`, grant the privileges needed so `sales_mgr` can execute the `list_emp` procedure, `hire_clerk` function, and `emp_admin` package. The only data object `sales_mgr` has access to is the `emp` table in the `sales_mgr` schema. `sales_mgr` has no privileges on any table in the `hr_mgr` schema. -```text +```sql GRANT USAGE ON SCHEMA hr_mgr TO sales_mgr; GRANT EXECUTE ON PROCEDURE list_emp TO sales_mgr; GRANT EXECUTE ON FUNCTION hire_clerk(VARCHAR2,NUMBER) TO sales_mgr; @@ -171,7 +171,7 @@ GRANT EXECUTE ON PACKAGE emp_admin TO sales_mgr; Connect as user `sales_mgr`, and run the following anonymous block: -```text +```sql \c – sales_mgr DECLARE v_empno NUMBER(4); @@ -215,10 +215,10 @@ The table and sequence accessed by the programs of the anonymous block are shown Selecting from the `sales_mgr` `emp` table shows that the update was made in this table. -```text +```sql SELECT empno, ename, hiredate, sal, deptno, hr_mgr.emp_admin.get_dept_name(deptno) FROM sales_mgr.emp; - +__OUTPUT__ empno | ename | hiredate | sal | deptno | get_dept_name -------+--------+--------------------+---------+--------+--------------- 7499 | ALLEN | 20-FEB-81 00:00:00 | 1600.00 | 30 | SALES @@ -239,7 +239,7 @@ The following diagram shows that the `SELECT` command references the `emp` table While connected as user `sales_mgr`, run the `hire_emp` procedure in the `emp_admin` package. -```text +```sql EXEC hr_mgr.emp_admin.hire_emp(9001, 'ALICE','SALESMAN',8000,TRUNC(SYSDATE),1000,7369,40); ``` @@ -252,11 +252,11 @@ This diagram shows that the `hire_emp` procedure in the `emp_admin` definer’s Now connect as user `hr_mgr`. The following `SELECT` command verifies that the new employee was added to the `hr_mgr` `emp` table since the `emp_admin` package has definer’s rights and `hr_mgr` is the `emp_admin` owner. -```text +```sql \c – hr_mgr SELECT empno, ename, hiredate, sal, deptno, hr_mgr.emp_admin.get_dept_name(deptno) FROM hr_mgr.emp; - +__OUTPUT__ empno | ename | hiredate | sal | deptno | get_dept_name -------+--------+--------------------+---------+--------+--------------- 7369 | SMITH | 17-DEC-80 00:00:00 | 800.00 | 20 | RESEARCH diff --git a/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/01_declaring_a_variable.mdx b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/01_declaring_a_variable.mdx index 5ae1a4da519..5cf545b0d74 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/01_declaring_a_variable.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/01_declaring_a_variable.mdx @@ -8,7 +8,7 @@ Generally, you must declare all variables used in a block in the declaration sec The general syntax of a variable declaration is: -```text +```sql [ { := | DEFAULT } { | NULL } ]; ``` @@ -22,7 +22,7 @@ The default value is evaluated every time the block is entered. So, for example, This procedure shows some variable declarations that use defaults consisting of string and numeric expressions: -```text +```sql CREATE OR REPLACE PROCEDURE dept_salary_rpt ( p_deptno NUMBER ) @@ -41,9 +41,9 @@ END; The following output of the procedure shows that default values in the variable declarations are assigned to the variables: -```text +```sql EXEC dept_salary_rpt(20); - +__OUTPUT__ Report For Department # 20 on 10-JUL-07 16:44:45 Base Annual Salary: 47366.55 ``` diff --git a/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/02_using__type_in_variable_declarations.mdx b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/02_using__type_in_variable_declarations.mdx index bc08d017640..71639ff1aa1 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/02_using__type_in_variable_declarations.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/02_using__type_in_variable_declarations.mdx @@ -17,7 +17,7 @@ Instead of coding the specific column data type into the variable declaration, y !!! Note You can use the `%TYPE` attribute with formal parameter declarations as well. -```text +```sql { {
| }. | }%TYPE; ``` @@ -35,7 +35,7 @@ In this example, a procedure: - Finds the average salary of all employees in the department to which the employee belongs - Compares the chosen employee’s salary with the department average -```text +```sql CREATE OR REPLACE PROCEDURE emp_sal_query ( p_empno IN NUMBER ) @@ -71,7 +71,7 @@ END; Alternatively, you can write the procedure without explicitly coding the `emp` table data types into the declaration section of the procedure: -```text +```sql CREATE OR REPLACE PROCEDURE emp_sal_query ( p_empno IN emp.empno%TYPE ) @@ -109,9 +109,9 @@ END; The following is sample output from executing this procedure: -```text +```sql EXEC emp_sal_query(7698); - +__OUTPUT__ Employee # : 7698 Name : BLAKE Job : MANAGER diff --git a/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/03_using__row_type_in_record_declarations.mdx b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/03_using__row_type_in_record_declarations.mdx index dc6c06b4e89..81cac46361d 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/03_using__row_type_in_record_declarations.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/03_using__row_type_in_record_declarations.mdx @@ -23,7 +23,7 @@ You can use the `%ROWTYPE` attribute to declare a record. The `%ROWTYPE` attribu This example shows how you can modify the `emp_sal_query` procedure from [Using %TYPE in variable declarations](02_using__type_in_variable_declarations) to use `emp%ROWTYPE` to create a record named `r_emp` instead of declaring individual variables for the columns in `emp`: -```text +```sql CREATE OR REPLACE PROCEDURE emp_sal_query ( p_empno IN emp.empno%TYPE ) diff --git a/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/04_user_defined_record_types_and_record_variables.mdx b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/04_user_defined_record_types_and_record_variables.mdx index 43e63524ae7..fce1a0426d4 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/04_user_defined_record_types_and_record_variables.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/03_variable_declarations/04_user_defined_record_types_and_record_variables.mdx @@ -14,13 +14,13 @@ You use the `TYPE IS RECORD` statement to create the definition of a record type The syntax for a `TYPE IS RECORD` statement is: -```text +```sql TYPE IS RECORD ( ) ``` Where `fields` is a comma-separated list of one or more field definitions of the following form: -```text +```sql [NOT NULL][{:= | DEFAULT} ] ``` @@ -51,7 +51,7 @@ Use dot notation to reference the fields in the record: This `emp_sal_query` procedure uses a user-defined record type and record variable: -```text +```sql CREATE OR REPLACE PROCEDURE emp_sal_query ( p_empno IN emp.empno%TYPE ) @@ -92,9 +92,9 @@ Instead of specifying data type names, you can use the `%TYPE` attribute for the The following is the output from executing this stored procedure: -```text +```sql EXEC emp_sal_query(7698); - +__OUTPUT__ Employee # : 7698 Name : BLAKE Job : MANAGER diff --git a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/01_assignment.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/01_assignment.mdx index 162b08758ab..8d321f68c1a 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/01_assignment.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/01_assignment.mdx @@ -16,7 +16,7 @@ The assignment statement sets a variable or a formal parameter of mode `OUT` or This example shows the typical use of assignment statements in the executable section of the procedure: -```text +```sql CREATE OR REPLACE PROCEDURE dept_salary_rpt ( p_deptno NUMBER ) diff --git a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/02_delete.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/02_delete.mdx index 4326eb0fdc5..d5bef0867d1 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/02_delete.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/02_delete.mdx @@ -8,7 +8,7 @@ You can use the `DELETE` command available in the SQL language in SPL programs. You can use an expression in the SPL language wherever an expression is allowed in the SQL `DELETE` command. Thus, you can use SPL variables and parameters to supply values to the delete operation. -```text +```sql CREATE OR REPLACE PROCEDURE emp_delete ( p_empno IN emp.empno%TYPE ) @@ -28,13 +28,13 @@ The `SQL%FOUND` conditional expression returns `TRUE` if a row is deleted, `FALS This example deletes an employee using this procedure: -```text +```sql EXEC emp_delete(9503); Deleted Employee # : 9503 SELECT * FROM emp WHERE empno = 9503; - +__OUTPUT__ empno | ename | job | mgr | hiredate | sal | comm | deptno -------+-------+-----+-----+----------+-----+------+-------- (0 rows) diff --git a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/03_insert.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/03_insert.mdx index afe2356e887..ce136169a47 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/03_insert.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/03_insert.mdx @@ -10,7 +10,7 @@ You can use an expression in the SPL language wherever an expression is allowed This example is a procedure that inserts a new employee using data passed from a calling program: -```text +```sql CREATE OR REPLACE PROCEDURE emp_insert ( p_empno IN emp.empno%TYPE, p_ename IN emp.ename%TYPE, @@ -56,7 +56,7 @@ If an exception occurs, all database changes made in the procedure are rolled ba The following shows the output when this procedure is executed: -```text +```sql EXEC emp_insert(9503,'PETERSON','ANALYST',7902,'31-MAR-05',5000,NULL,40); Added employee... @@ -70,7 +70,7 @@ Dept # : 40 ---------------------- SELECT * FROM emp WHERE empno = 9503; - +__OUTPUT__ empno | ename | job | mgr | hiredate | sal | comm | deptno -------+--------+--------+------+-------------------+---------+------+------- 9503 |PETERSON| ANALYST| 7902 | 31-MAR-05 00:00:00| 5000.00 | | 40 diff --git a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/04_null.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/04_null.mdx index d4de7baaac1..8193abdb9ac 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/04_null.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/04_null.mdx @@ -6,13 +6,13 @@ title: "NULL" The simplest statement is the `NULL` statement. This statement is an executable statement that does nothing. -```text +```sql NULL; ``` The following is the simplest possible valid SPL program: -```text +```sql BEGIN NULL; END; @@ -20,7 +20,7 @@ END; The `NULL` statement can act as a placeholder where an executable statement is required such as in a branch of an `IF-THEN-ELSE` statement. For example: -```text +```sql CREATE OR REPLACE PROCEDURE divide_it ( p_numerator IN NUMBER, p_denominator IN NUMBER, diff --git a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/05_using_the_returning_into_clause.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/05_using_the_returning_into_clause.mdx index 2843ec0d8ab..fe3ad0f56ee 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/05_using_the_returning_into_clause.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/05_using_the_returning_into_clause.mdx @@ -8,7 +8,7 @@ You can append the `INSERT`, `UPDATE`, and `DELETE` commands with the optional ` The following is the syntax: -```text +```sql { | | } RETURNING { * | [, ] ...} INTO { | [, ] ...}; @@ -29,7 +29,7 @@ If the `INSERT`, `UPDATE`, or `DELETE` command returns a result set with more th This example modifies the `emp_comp_update` procedure introduced in [UPDATE](07_update/#update). It adds the `RETURNING INTO` clause: -```text +```sql CREATE OR REPLACE PROCEDURE emp_comp_update ( p_empno IN emp.empno%TYPE, p_sal IN emp.sal%TYPE, @@ -74,9 +74,9 @@ END; The following is the output from this procedure, assuming employee `9503` created by the `emp_insert` procedure still exists in the table: -```text +```sql EXEC emp_comp_update(9503, 6540, 1200); - +__OUTPUT__ Updated Employee # : 9503 Name : PETERSON Job : ANALYST @@ -87,7 +87,7 @@ New Commission : 1200.00 This example modifies the `emp_delete` procedure, adding the `RETURNING INTO` clause using record types: -```text +```sql CREATE OR REPLACE PROCEDURE emp_delete ( p_empno IN emp.empno%TYPE ) @@ -117,9 +117,9 @@ END; The following is the output from this procedure: -```text +```sql EXEC emp_delete(9503); - +__OUTPUT__ Deleted Employee # : 9503 Name : PETERSON Job : ANALYST diff --git a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/06_select_into.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/06_select_into.mdx index d51f540621d..acc8b856687 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/06_select_into.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/06_select_into.mdx @@ -11,13 +11,13 @@ The `SELECT INTO` statement is an SPL variation of the SQL `SELECT` command. The Other than these differences, all of the clauses of the `SELECT` command, such as `WHERE`, `ORDER BY`, `GROUP BY`, and `HAVING`, are valid for `SELECT INTO`. The following are the two variations of `SELECT INTO`: -```text +```sql SELECT INTO FROM ...; ``` `target` is a comma-separated list of simple variables. `select_expressions` and the remainder of the statement are the same as for the `SELECT` command. The selected values must exactly match in data type, number, and order the structure of the target or a runtime error occurs. -```text +```sql SELECT * INTO FROM
...; ``` @@ -34,7 +34,7 @@ You can use the `WHEN NO_DATA_FOUND` clause in an `EXCEPTION` block to determine This version of the `emp_sal_query` procedure uses the variation of `SELECT INTO` that returns the result set into a record. It also uses the `EXCEPTION` block containing the `WHEN NO_DATA_FOUND` conditional expression. -```text +```sql CREATE OR REPLACE PROCEDURE emp_sal_query ( p_empno IN emp.empno%TYPE ) @@ -68,7 +68,7 @@ END; If the query is executed with a nonexistent employee number, the results appear as follows: -```text +```sql EXEC emp_sal_query(0); Employee # 0 not found @@ -78,7 +78,7 @@ Another conditional clause useful in the `EXCEPTION` section with `SELECT INTO` When the following block is executed, the `TOO_MANY_ROWS` exception is thrown since there are many employees in the specified department: -```text +```sql DECLARE v_ename emp.ename%TYPE; BEGIN diff --git a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/07_update.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/07_update.mdx index 6be9a47e417..52dc55f9818 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/07_update.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/07_update.mdx @@ -8,7 +8,7 @@ You can use the `UPDATE` command available in the SQL language in SPL programs. You can use an expression in the SPL language wherever an expression is allowed in the SQL `UPDATE` command. Thus, you can use SPL variables and parameters to supply values to the update operation. -```text +```sql CREATE OR REPLACE PROCEDURE emp_comp_update ( p_empno IN emp.empno%TYPE, p_sal IN emp.sal%TYPE, @@ -32,7 +32,7 @@ The `SQL%FOUND` conditional expression returns `TRUE` if a row is updated, `FALS The following shows the update on the employee using this procedure: -```text +```sql EXEC emp_comp_update(9503, 6540, 1200); Updated Employee # : 9503 @@ -40,7 +40,7 @@ New Salary : 6540 New Commission : 1200 SELECT * FROM emp WHERE empno = 9503; - +__OUTPUT__ empno | ename | job | mgr | hiredate | sal | comm | deptno ------+--------+--------+------+-------------------+--------+-------+------- 9503 |PETERSON| ANALYST| 7902 | 31-MAR-05 00:00:00|6540.00 |1200.00| 40 diff --git a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/08_obtaining_the_result_status.mdx b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/08_obtaining_the_result_status.mdx index e685797d3e0..a435bc1e9e1 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/08_obtaining_the_result_status.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/04_basic_statements/08_obtaining_the_result_status.mdx @@ -8,7 +8,7 @@ You can use several attributes to determine the effect of a command. `SQL%FOUND` The following anonymous block inserts a row and then displays the fact that the row was inserted: -```text +```sql BEGIN INSERT INTO emp (empno,ename,job,sal,deptno) VALUES ( 9001, 'JONES', 'CLERK', 850.00, 40); @@ -22,7 +22,7 @@ Row has been inserted `SQL%ROWCOUNT` provides the number of rows affected by an `INSERT`, `UPDATE`, `DELETE`, or `SELECT INTO` command. The `SQL%ROWCOUNT` value is returned as a `BIGINT` data type. The following example updates the row that was just inserted and displays `SQL%ROWCOUNT`: -```text +```sql BEGIN UPDATE emp SET hiredate = '03-JUN-07' WHERE empno = 9001; DBMS_OUTPUT.PUT_LINE('# rows updated: ' || SQL%ROWCOUNT); @@ -33,7 +33,7 @@ END; `SQL%NOTFOUND` is the opposite of `SQL%FOUND`. `SQL%NOTFOUND` returns `TRUE` if no rows were affected by an `INSERT`, `UPDATE` or `DELETE` command or a `SELECT INTO` command retrieved no rows. -```text +```sql BEGIN UPDATE emp SET hiredate = '03-JUN-07' WHERE empno = 9000; IF SQL%NOTFOUND THEN diff --git a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/01_if_then.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/01_if_then.mdx index cfd9063ed4e..ec6082e1cf1 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/01_if_then.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/01_if_then.mdx @@ -4,7 +4,7 @@ title: "IF-THEN" -```text +```sql IF boolean-expression THEN END IF; @@ -14,7 +14,7 @@ END IF; This example uses `IF-THEN` statement to test and display employees who have a commission: -```text +```sql DECLARE v_empno emp.empno%TYPE; v_comm emp.comm%TYPE; @@ -40,7 +40,8 @@ END; The following is the output from this program: -```text +```sql +__OUTPUT__ EMPNO COMM ----- ------- 7499 $300.00 diff --git a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/02_if_then_else.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/02_if_then_else.mdx index 091cb1db1eb..1458daa1142 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/02_if_then_else.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/02_if_then_else.mdx @@ -4,7 +4,7 @@ title: "IF-THEN-ELSE" -```text +```sql IF boolean-expression THEN ELSE @@ -16,7 +16,7 @@ END IF; This example shows an `IF-THEN-ELSE` statement being used to display the text `Non-commission` if an employee doesn't get a commission: -```text +```sql DECLARE v_empno emp.empno%TYPE; v_comm emp.comm%TYPE; @@ -44,7 +44,8 @@ END; The following is the output from this program: -```text +```sql +__OUTPUT__ EMPNO COMM ----- ------- 7369 Non-commission diff --git a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/03_if_then_else_if.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/03_if_then_else_if.mdx index 4df22e895bf..72ff67112b8 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/03_if_then_else_if.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/03_if_then_else_if.mdx @@ -65,7 +65,8 @@ END; The following is the output from this program: -```text +```sql +__OUTPUT__ Average Yearly Compensation: $ 53,528.57 EMPNO YEARLY COMP ----- ----------- diff --git a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/04_if_then_elseif_else.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/04_if_then_elseif_else.mdx index 061e461372e..b5729fcd95b 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/04_if_then_elseif_else.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/01_if_statement/04_if_then_elseif_else.mdx @@ -4,7 +4,7 @@ title: "IF-THEN-ELSIF-ELSE" -```text +```sql IF boolean-expression THEN [ ELSIF boolean-expression THEN @@ -20,7 +20,7 @@ END IF; The following example uses an `IF-THEN-ELSIF-ELSE` statement to count the number of employees by compensation ranges of $25,000: -```text +```sql DECLARE v_empno emp.empno%TYPE; v_comp NUMBER(8,2); @@ -59,7 +59,8 @@ END; The following is the output from this program: -```text +```sql +__OUTPUT__ Number of employees by yearly compensation Less than 25,000 : 2 25,000 - 49,9999 : 5 diff --git a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/02_return_statement.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/02_return_statement.mdx index 847d3cb72db..57647719c12 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/02_return_statement.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/02_return_statement.mdx @@ -12,13 +12,13 @@ The `RETURN` statement terminates the current function, procedure, or anonymous The `RETURN` statement has two forms. The first form of the `RETURN` statement terminates a procedure or function that returns `void`. The syntax of this form is: -```text +```sql RETURN; ``` The second form of `RETURN` returns a value to the caller. The syntax of this form is: -```text +```sql RETURN ; ``` @@ -26,7 +26,7 @@ RETURN ; This example uses the `RETURN` statement and returns a value to the caller: -```text +```sql CREATE OR REPLACE FUNCTION emp_comp ( p_sal NUMBER, p_comm NUMBER diff --git a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/03_goto_statement.mdx b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/03_goto_statement.mdx index 57121b00b5e..fcb7dfa1235 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/03_goto_statement.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/05_control_structures/03_goto_statement.mdx @@ -10,7 +10,7 @@ legacyRedirectsGenerated: The `GOTO` statement causes the point of execution to jump to the statement with the specified label. The syntax of a `GOTO` statement is: -```text +```sql GOTO
( { | ( ) | } ) [ TABLESPACE ] @@ -94,25 +94,25 @@ You can specify up to 32 fields in a multicolumn index. To create a B-tree index on the column `ename` in the table `emp`: -```text +```sql CREATE INDEX name_idx ON emp (ename); ``` To create the same index but have it reside in the `index_tblspc` tablespace: -```text +```sql CREATE INDEX name_idx ON emp (ename) TABLESPACE index_tblspc; ``` You can include a constant value in the index definition (`1`) to create an index that never contains a row where all of the indexed columns are `NULL`: -```text +```sql CREATE INDEX emp_dob_idx on emp (emp_dob, 1); ``` To create an index on `name_idx` in the table `emp` with degree of parallelism set to 7: -```text +```sql CREATE UNIQUE INDEX name_idx ON emp (ename) PARALLEL 7; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/25_create_materialized_view.mdx b/product_docs/docs/epas/15/epas_compat_sql/25_create_materialized_view.mdx index 97c7d4eac77..1dff8ef9812 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/25_create_materialized_view.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/25_create_materialized_view.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE MATERIALIZED VIEW [][] AS subquery @@ -70,7 +70,7 @@ For more information about the Postgres `REFRESH MATERIALIZED VIEW` command, see This statement creates a materialized view named `dept_30`: -```text +```sql CREATE MATERIALIZED VIEW dept_30 BUILD IMMEDIATE AS SELECT * FROM emp WHERE deptno = 30; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/26_create_package.mdx b/product_docs/docs/epas/15/epas_compat_sql/26_create_package.mdx index 7c80b361320..c0771eebe97 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/26_create_package.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/26_create_package.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE [ OR REPLACE ] PACKAGE [ AUTHID { DEFINER | CURRENT_USER } ] { IS | AS } @@ -98,7 +98,7 @@ The user that creates the procedure becomes the owner of the package. The package specification `empinfo` contains three public components: a public variable, a public procedure, and a public function: -```text +```sql CREATE OR REPLACE PACKAGE empinfo IS emp_name VARCHAR2(10); diff --git a/product_docs/docs/epas/15/epas_compat_sql/27_create_package_body.mdx b/product_docs/docs/epas/15/epas_compat_sql/27_create_package_body.mdx index 6286a208feb..eee3bdc6535 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/27_create_package_body.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/27_create_package_body.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE [ OR REPLACE ] PACKAGE BODY { IS | AS } [ declaration; ] | [ forward_declaration ] [, ...] @@ -170,7 +170,7 @@ If you include a schema name, then the package body is created in the specified The following is the package body for the `empinfo` package: -```text +```sql CREATE OR REPLACE PACKAGE BODY empinfo IS v_counter INTEGER; @@ -196,7 +196,7 @@ END; The following two anonymous blocks execute the procedure and function in the `empinfo` package and display the public variable: -```text +```sql BEGIN empinfo.get_name(7369); DBMS_OUTPUT.PUT_LINE('Employee Name : ' || empinfo.emp_name); @@ -219,7 +219,7 @@ Number of queries: 2 This example uses a forward declaration in a package body. The example displays the name and number of employees whose salary falls in the specified range. -```text +```sql CREATE OR REPLACE PACKAGE empinfo IS FUNCTION emp_comp (p_sal_range INTEGER) RETURN INTEGER; END empinfo; @@ -256,6 +256,7 @@ END empinfo; SELECT empinfo.emp_comp(1500); +__OUTPUT__ Employee details Number of employees in the salary range 1500 is :7 (SMITH) diff --git a/product_docs/docs/epas/15/epas_compat_sql/28_create_procedure.mdx b/product_docs/docs/epas/15/epas_compat_sql/28_create_procedure.mdx index a5c2c225508..da76396265f 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/28_create_procedure.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/28_create_procedure.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE [OR REPLACE] PROCEDURE [ () ] [ IMMUTABLE @@ -157,7 +157,7 @@ To update the definition of an existing procedure, use `CREATE OR REPLACE PROCED This procedure lists the employees in the `emp` table: -```text +```sql CREATE OR REPLACE PROCEDURE list_emp IS v_empno NUMBER(4); @@ -177,7 +177,7 @@ BEGIN END; EXEC list_emp; - +__OUTPUT__ EMPNO ENAME ----- ------- 7369 SMITH @@ -198,7 +198,7 @@ EMPNO ENAME This procedure uses `IN OUT` and `OUT` arguments to return an employee’s number, name, and job based on a search using the given employee number. If that isn't found, then the search uses the given name. An anonymous block calls the procedure. -```text +```sql CREATE OR REPLACE PROCEDURE emp_job ( p_empno IN OUT emp.empno%TYPE, p_ename IN OUT emp.ename%TYPE, @@ -243,7 +243,7 @@ BEGIN DBMS_OUTPUT.PUT_LINE('Name : ' || v_ename); DBMS_OUTPUT.PUT_LINE('Job : ' || v_job); END; - +__OUTPUT__ Found employee CLARK Employee No: 7782 Name : CLARK @@ -252,7 +252,7 @@ Job : MANAGER This example uses the `AUTHID DEFINER` and `SET` clauses in a procedure declaration. The `update_salary` procedure conveys the privileges of the role that defined the procedure to the role that's calling the procedure while the procedure executes. -```text +```sql CREATE OR REPLACE PROCEDURE update_salary(id INT, new_salary NUMBER) SET SEARCH_PATH = 'public' SET WORK_MEM = '1MB' AUTHID DEFINER IS diff --git a/product_docs/docs/epas/15/epas_compat_sql/29_create_profile.mdx b/product_docs/docs/epas/15/epas_compat_sql/29_create_profile.mdx index f216c570c1b..58dd6f80d33 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/29_create_profile.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/29_create_profile.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE PROFILE [LIMIT {} ... ]; ``` @@ -103,7 +103,7 @@ Use the `DROP PROFILE` command to remove the profile. This command creates a profile named `acctg`. The profile specifies that if a user hasn't authenticated with the correct password in five attempts, the account is locked for one day: -```text +```sql CREATE PROFILE acctg LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 1; @@ -111,7 +111,7 @@ CREATE PROFILE acctg LIMIT This command creates a profile named `sales`. The profile specifies that a user must change their password every 90 days: -```text +```sql CREATE PROFILE sales LIMIT PASSWORD_LIFE_TIME 90 PASSWORD_GRACE_TIME 3; @@ -121,7 +121,7 @@ If the user doesn't change their password before the 90 days specified in the pr This command creates a profile named `accts`. The profile specifies that a user can't reuse a password within 180 days of the last use of the password and must change their password at least five times before reusingit: -```text +```sql CREATE PROFILE accts LIMIT PASSWORD_REUSE_TIME 180 PASSWORD_REUSE_MAX 5; @@ -129,7 +129,7 @@ CREATE PROFILE accts LIMIT This command creates a profile named `resources`. The profile calls a user-defined function named `password_rules` that verifies that the password provided meets their standards for complexity: -```text +```sql CREATE PROFILE resources LIMIT PASSWORD_VERIFY_FUNCTION password_rules; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/30_create_queue.mdx b/product_docs/docs/epas/15/epas_compat_sql/30_create_queue.mdx index 8a0f7a11a63..00d03279522 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/30_create_queue.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/30_create_queue.mdx @@ -17,13 +17,13 @@ EDB Postgres Advanced Server includes extra syntax not offered by Oracle with th Use `CREATE QUEUE` to define a new queue: -```text +```sql CREATE QUEUE QUEUE TABLE [ ( { } [, ... ] ) ] ``` Where possible values for `option_name` and the corresponding `option_value` are: -```text +```sql TYPE [normal_queue | exception_queue] RETRIES [INTEGER] RETRYDELAY [DOUBLE PRECISION] @@ -61,7 +61,7 @@ Use `DROP QUEUE` to remove a queue. This command creates a queue named `work_order` that's associated with a queue table named `work_order_table`: -```text +```sql CREATE QUEUE work_order QUEUE TABLE work_order_table (RETRIES 5, RETRYDELAY 2); ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/31_create_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_sql/31_create_queue_table.mdx index ef3f80cb973..7dc6836a6f0 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/31_create_queue_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/31_create_queue_table.mdx @@ -17,7 +17,7 @@ EDB Postgres Advanced Server includes extra syntax not offered by Oracle with th Use `CREATE QUEUE TABLE` to define a queue table: -```text +```sql CREATE QUEUE TABLE OF [ ( { } [, ... ] ) ] ``` @@ -90,13 +90,13 @@ Only the `TABLESPACE` option is enforced. All others are accepted for compatibil You must create a user-defined type before creating a queue table. The type describes the columns and data types in the table. This command creates a type named `work_order`: -```text +```sql CREATE TYPE work_order AS (name VARCHAR2, project TEXT, completed BOOLEAN); ``` This command uses the `work_order` type to create a queue table named `work_order_table`: -```text +```sql CREATE QUEUE TABLE work_order_table OF work_order (sort_list (enq_time, priority)); ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/32_create_role.mdx b/product_docs/docs/epas/15/epas_compat_sql/32_create_role.mdx index 20f6eb8c6b3..34c94cd3036 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/32_create_role.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/32_create_role.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE ROLE [IDENTIFIED BY [REPLACE old_password]] ``` @@ -49,7 +49,7 @@ The maximum length limit for role name and password is 63 characters. Create a role and a schema named `admins` with a password: -```text +```sql CREATE ROLE admins IDENTIFIED BY Rt498zb; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/33_create_schema.mdx b/product_docs/docs/epas/15/epas_compat_sql/33_create_schema.mdx index 747cf6cd856..4396b135eb6 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/33_create_schema.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/33_create_schema.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE SCHEMA AUTHORIZATION [ ... ] ``` @@ -47,7 +47,7 @@ In EDB Postgres Advanced Server, other forms of the `CREATE SCHEMA` command aren ## Examples -```text +```sql CREATE SCHEMA AUTHORIZATION enterprisedb CREATE TABLE empjobs (ename VARCHAR2(10), job VARCHAR2(9)) CREATE VIEW managers AS SELECT ename FROM empjobs WHERE job = 'MANAGER' diff --git a/product_docs/docs/epas/15/epas_compat_sql/34_create_sequence.mdx b/product_docs/docs/epas/15/epas_compat_sql/34_create_sequence.mdx index fae7aeba5de..318499b580b 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/34_create_sequence.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/34_create_sequence.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE SEQUENCE [ INCREMENT BY ] [ { NOMINVALUE | MINVALUE } ] [ { NOMAXVALUE | MAXVALUE } ] @@ -73,15 +73,15 @@ Furthermore, although multiple sessions are guaranteed to allocate distinct sequ Create an ascending sequence called `serial`, starting at 101: -```text +```sql CREATE SEQUENCE serial START WITH 101; ``` Select the next number from this sequence: -```text +```sql SELECT serial.NEXTVAL FROM DUAL; - +__OUTPUT__ nextval --------- 101 @@ -90,7 +90,7 @@ SELECT serial.NEXTVAL FROM DUAL; Create a sequence called `supplier_seq` with the `NOCACHE` option: -```text +```sql CREATE SEQUENCE supplier_seq MINVALUE 1 START WITH 1 @@ -100,9 +100,9 @@ CREATE SEQUENCE supplier_seq Select the next number from this sequence: -```text +```sql SELECT supplier_seq.NEXTVAL FROM DUAL; - +__OUTPUT__ nextval --------- 1 diff --git a/product_docs/docs/epas/15/epas_compat_sql/35_create_synonym.mdx b/product_docs/docs/epas/15/epas_compat_sql/35_create_synonym.mdx index 8290db22861..f90bd153b1d 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/35_create_synonym.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/35_create_synonym.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE [OR REPLACE] [PUBLIC] SYNONYM [.] FOR .[@]; ``` @@ -59,14 +59,14 @@ Include the `REPLACE` clause to replace an existing synonym definition with a ne Include the `PUBLIC` clause to create the synonym in the `public` schema. The `CREATE PUBLIC SYNONYM` command, compatible with Oracle databases, creates a synonym that resides in the `public` schema: -```text +```sql CREATE [OR REPLACE] PUBLIC SYNONYM FOR .; ``` This is a shorthand way to write: -```text +```sql CREATE [OR REPLACE] SYNONYM public. FOR .; ``` @@ -79,7 +79,7 @@ Access to the object referenced by the synonym is determined by the permissions Create a synonym for the `emp` table in a schema named `enterprisedb`: -```text +```sql CREATE SYNONYM personnel FOR enterprisedb.emp; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/36_create_table.mdx b/product_docs/docs/epas/15/epas_compat_sql/36_create_table.mdx index e3286f37b46..58ab6010cd0 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/36_create_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/36_create_table.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE [ GLOBAL TEMPORARY | UNLOGGED ] TABLE ( { [ DEFAULT ] [ [ ... ] ] | } [, ...] @@ -27,7 +27,7 @@ CREATE [ GLOBAL TEMPORARY | UNLOGGED ] TABLE ( Where `column_constraint` is: -```text +```sql [ CONSTRAINT ] { NOT NULL | NULL | @@ -42,7 +42,7 @@ Where `column_constraint` is: Where `table_constraint` is: -```text +```sql [ CONSTRAINT ] { UNIQUE ( [, ...] ) [ USING INDEX [ ] TABLESPACE ] | @@ -223,7 +223,7 @@ EDB Postgres Advanced Server creates an index for each unique constraint and pri Create table `dept` and table `emp`: -```text +```sql CREATE TABLE dept ( deptno NUMBER(2) NOT NULL CONSTRAINT dept_pk PRIMARY KEY, dname VARCHAR2(14), @@ -244,7 +244,7 @@ CREATE TABLE emp ( Define a unique table constraint for the table `dept`. You can define unique table constraints on one or more columns of the table. -```text +```sql CREATE TABLE dept ( deptno NUMBER(2) NOT NULL CONSTRAINT dept_pk PRIMARY KEY, dname VARCHAR2(14) CONSTRAINT dept_dname_uq UNIQUE, @@ -254,7 +254,7 @@ CREATE TABLE dept ( Define a check column constraint: -```text +```sql CREATE TABLE emp ( empno NUMBER(4) NOT NULL CONSTRAINT emp_pk PRIMARY KEY, ename VARCHAR2(10), @@ -270,7 +270,7 @@ CREATE TABLE emp ( Define a check table constraint: -```text +```sql CREATE TABLE emp ( empno NUMBER(4) NOT NULL CONSTRAINT emp_pk PRIMARY KEY, ename VARCHAR2(10), @@ -287,7 +287,7 @@ CREATE TABLE emp ( Define a primary key table constraint for the table `jobhist`. You can define primary key table constraints on one or more columns of the table. -```text +```sql CREATE TABLE jobhist ( empno NUMBER(4) NOT NULL, startdate DATE NOT NULL, @@ -303,7 +303,7 @@ CREATE TABLE jobhist ( This example assigns a literal constant default value for the column `job` and makes the default value of `hiredate` the date when the row is inserted. -```text +```sql CREATE TABLE emp ( empno NUMBER(4) NOT NULL CONSTRAINT emp_pk PRIMARY KEY, ename VARCHAR2(10), @@ -319,7 +319,7 @@ CREATE TABLE emp ( Create table `dept` in tablespace `diskvol1`: -```text +```sql CREATE TABLE dept ( deptno NUMBER(2) NOT NULL CONSTRAINT dept_pk PRIMARY KEY, dname VARCHAR2(14), @@ -329,19 +329,19 @@ CREATE TABLE dept ( This `PARALLEL` example creates a table `sales` and sets a degree of parallelism to 6: -```text +```sql CREATE TABLE sales (deptno number) PARALLEL 6 WITH (FILLFACTOR=66); ``` This `NOPARALLEL` example creates a table `sales_order` and sets a degree of parallelism to 0: -```text +```sql CREATE TABLE sales_order (deptno number) NOPARALLEL WITH (FILLFACTOR=66); ``` This example creates a table named `dept`. The definition creates a unique key on the `dname` column. The constraint `dept_dname_uq` identifies the `dname` column as a unique key. The preceding statement includes the `USING_INDEX` clause, which explicitly creates an index on a table `dept` with the index statement enabling the unique constraint. -```text +```sql CREATE TABLE dept ( deptno NUMBER(2) NOT NULL, dname VARCHAR2(14), @@ -353,7 +353,7 @@ CREATE TABLE dept ( This example creates a table named `emp`. The definition creates a primary key on the `ename` column. The `emp_ename_pk` constraint identifies the `ename` column as a primary key of the `emp` table. The preceding statement includes the `USING_INDEX` clause, which explicitly creates an index on a table `emp` with the index statement enabling the primary constraint. -```text +```sql CREATE TABLE emp ( empno NUMBER(4) NOT NULL, ename VARCHAR2(10), diff --git a/product_docs/docs/epas/15/epas_compat_sql/37_create_table_as.mdx b/product_docs/docs/epas/15/epas_compat_sql/37_create_table_as.mdx index cace39be689..d2b49844dec 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/37_create_table_as.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/37_create_table_as.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE [ GLOBAL TEMPORARY ] TABLE [ ( [, ...] ) ] [ ON COMMIT { PRESERVE ROWS | DELETE ROWS } ] diff --git a/product_docs/docs/epas/15/epas_compat_sql/38_create_trigger.mdx b/product_docs/docs/epas/15/epas_compat_sql/38_create_trigger.mdx index 87b3cce0d4e..ba5011f641c 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/38_create_trigger.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/38_create_trigger.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE [ OR REPLACE ] TRIGGER { BEFORE | AFTER | INSTEAD OF } { INSERT | UPDATE | DELETE | TRUNCATE } @@ -41,7 +41,7 @@ CREATE [ OR REPLACE ] TRIGGER ## Synopsis -```text +```sql CREATE [ OR REPLACE ] TRIGGER FOR { INSERT | UPDATE | DELETE | TRUNCATE } [ OR { INSERT | UPDATE | DELETE | TRUNCATE } ] [, ...] @@ -73,7 +73,7 @@ procedure_definition | function_definition Where `procedure_definition` := -```text +```sql PROCEDURE proc_name[ argument_list ] [ options_list ] { IS | AS } @@ -83,7 +83,7 @@ PROCEDURE proc_name[ argument_list ] Where `procedure_body` := -```text +```sql [ declaration; ] [, ...] BEGIN statement; [...] @@ -95,7 +95,7 @@ BEGIN Where `function_definition` := -```text +```sql FUNCTION func_name [ argument_list ] RETURN rettype [ DETERMINISTIC ] [ options_list ] @@ -106,7 +106,7 @@ FUNCTION func_name [ argument_list ] Where `function_body` := -```text +```sql [ declaration; ] [, ...] BEGIN statement; [...] @@ -118,7 +118,7 @@ BEGIN Where `compound_trigger_definition` := -```text +```sql { compound_trigger_event } { IS | AS } compound_trigger_body END [ compound_trigger_event ] [ ... ] @@ -126,13 +126,13 @@ END [ compound_trigger_event ] [ ... ] Where `compound_trigger_event` := -```text +```sql [ BEFORE STATEMENT | BEFORE EACH ROW | AFTER EACH ROW | AFTER STATEMENT | INSTEAD OF EACH ROW ] ``` Where `compound_trigger_body` := -```text +```sql [ declaration; ] [, ...] BEGIN statement; [...] @@ -216,7 +216,7 @@ When you use syntax that's compatible with Oracle to create a trigger, the trigg This example shows a statement-level trigger that fires after the triggering statement (insert, update, or delete on table `emp`) executes. -```text +```sql CREATE OR REPLACE TRIGGER user_audit_trig AFTER INSERT OR UPDATE OR DELETE ON emp DECLARE @@ -236,7 +236,7 @@ END; This example is a row-level trigger that fires before each row is either inserted, updated, or deleted on table `emp`. -```text +```sql CREATE OR REPLACE TRIGGER emp_sal_trig BEFORE DELETE OR INSERT OR UPDATE ON emp FOR EACH ROW @@ -265,14 +265,14 @@ This example shows a compound trigger that records a change to the employee sala Create a table named `emp`: -```text +```sql CREATE TABLE emp(EMPNO INT, ENAME TEXT, SAL INT, DEPTNO INT); CREATE TABLE ``` Create a compound trigger named `hr_trigger`. The trigger uses each of the four timing-points to modify the salary with an `INSERT`, `UPDATE`, or `DELETE` statement. In the global declaration section, the initial salary is declared as `10,000`. -```text +```sql CREATE OR REPLACE TRIGGER hr_trigger FOR INSERT OR UPDATE OR DELETE ON emp COMPOUND TRIGGER @@ -310,13 +310,14 @@ Output: Trigger created. `INSERT` the record into table `emp`. -```text +```sql INSERT INTO emp (EMPNO, ENAME, SAL, DEPTNO) VALUES(1111,'SMITH', 10000, 20); ``` The `INSERT` statement produces the following output: -```text +```sql +__OUTPUT__ Before Statement: 11000 Before each row: 12000 After each row: 13000 @@ -326,13 +327,14 @@ INSERT 0 1 The `UPDATE` statement updates the employee salary record, setting the salary to `15000` for a specific employee number: -```text +```sql UPDATE emp SET SAL = 15000 where EMPNO = 1111; ``` The `UPDATE` statement produces the following output: -```text +sql +__OUTPUT__ Before Statement: 11000 Before each row: 12000 After each row: 13000 @@ -348,13 +350,13 @@ SELECT * FROM emp; The `DELETE` statement deletes the employee salary record: -```text +```sql DELETE from emp where EMPNO = 1111; ``` The `DELETE` statement produces the following output: -```text +```sql Before Statement: 11000 Before each row: 12000 After each row: 13000 @@ -362,6 +364,7 @@ After statement: 14000 DELETE 1 SELECT * FROM emp; +__OUTPUT__ EMPNO | ENAME | SAL | DEPTNO -------+-------+-----+-------- (0 rows) @@ -369,7 +372,7 @@ SELECT * FROM emp; The `TRUNCATE` statement removes all the records from the `emp` table: -```text +```sql CREATE OR REPLACE TRIGGER hr_trigger FOR TRUNCATE ON emp COMPOUND TRIGGER @@ -394,8 +397,9 @@ Output: Trigger created. The `TRUNCATE` statement produces the following output: -```text +```sql TRUNCATE emp; +__OUTPUT__ Before Statement: 11000 After statement: 12000 TRUNCATE TABLE @@ -406,7 +410,7 @@ TRUNCATE TABLE This example creates a compound trigger named `hr_trigger` on the `emp` table. It is a `WHEN` condition that checks and prints employee salary whenever an `INSERT`, `UPDATE`, or `DELETE` statement affects the `emp` table. The database evaluates the `WHEN` condition for a row-level trigger, and the trigger executes once per row if the `WHEN` condition evaluates to `TRUE`. The statement-level trigger executes regardless of the `WHEN` condition. -```text +```sql CREATE OR REPLACE TRIGGER hr_trigger FOR INSERT OR UPDATE OR DELETE ON emp REFERENCING NEW AS new OLD AS old @@ -438,13 +442,14 @@ END hr_trigger; Insert the record into table `emp`: -```text +```sql INSERT INTO emp(EMPNO, ENAME, SAL, DEPTNO) VALUES(1111, 'SMITH', 1600, 20); ``` The `INSERT` statement produces the following output: -```text +```sql +__OUTPUT__ Before Statement Before Each Row: 1600 After Each Row: 1600 @@ -454,13 +459,13 @@ INSERT 0 1 The `UPDATE` statement updates the employee salary record, setting the salary to `7500`: -```text +```sql UPDATE emp SET SAL = 7500 where EMPNO = 1111; ``` The `UPDATE` statement produces the following output: -```text +```sql Before Statement Before Each Row: 1600 7500 After Each Row: 1600 7500 @@ -468,6 +473,7 @@ After Statement UPDATE 1 SELECT * from emp; +__OUTPUT__ empno | ename | sal | deptno -------+-------+------+-------- 1111 | SMITH | 7500 | 20 @@ -476,13 +482,13 @@ SELECT * from emp; The `DELETE` statement deletes the employee salary record: -```text +```sql DELETE from emp where EMPNO = 1111; ``` The `DELETE` statement produces the following output: -```text +```sql Before Statement Before Each Row: 7500 After Each Row: 7500 @@ -490,6 +496,7 @@ After Statement DELETE 1 SELECT * from emp; +__OUTPUT__ empno | ename | sal | deptno -------+-------+-----+-------- (0 rows) diff --git a/product_docs/docs/epas/15/epas_compat_sql/39_create_type.mdx b/product_docs/docs/epas/15/epas_compat_sql/39_create_type.mdx index 2bc257c6400..f9e67094486 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/39_create_type.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/39_create_type.mdx @@ -16,7 +16,7 @@ legacyRedirectsGenerated: ### Object Type -```text +```sql CREATE [ OR REPLACE ] TYPE [ AUTHID { DEFINER | CURRENT_USER } ] { IS | AS } OBJECT @@ -28,7 +28,7 @@ CREATE [ OR REPLACE ] TYPE Where `method_spec` is: -```text +```sql [ [ NOT ] { FINAL | INSTANTIABLE } ] ... [ OVERRIDING ] @@ -36,7 +36,7 @@ Where `method_spec` is: Where `subprogram_spec` is: -```text +```sql { MEMBER | STATIC } { PROCEDURE [ ( [ SELF [ IN | IN OUT ] ] @@ -57,21 +57,21 @@ Where `subprogram_spec` is: ### Nested table type -```text +```sql CREATE [ OR REPLACE ] TYPE { IS | AS } TABLE OF { | | } ``` ### Varray type -```text +```sql CREATE [ OR REPLACE ] TYPE { IS | AS } { VARRAY | VARYING ARRAY } () OF { | } ``` ### Composite type -```text +```sql CREATE [ OR REPLACE ] TYPE { IS | AS } ( [ attribute ][, ...] ) @@ -173,7 +173,7 @@ Composite types aren't compatible with Oracle databases. However, SPL programs c Create object type `addr_obj_typ`: -```text +```sql CREATE OR REPLACE TYPE addr_obj_typ AS OBJECT ( street VARCHAR2(30), city VARCHAR2(20), @@ -184,7 +184,7 @@ CREATE OR REPLACE TYPE addr_obj_typ AS OBJECT ( Create object type `emp_obj_typ` that includes a member method `display_emp`: -```text +```sql CREATE OR REPLACE TYPE emp_obj_typ AS OBJECT ( empno NUMBER(4), ename VARCHAR2(20), @@ -195,7 +195,7 @@ CREATE OR REPLACE TYPE emp_obj_typ AS OBJECT ( Create object type `dept_obj_typ` that includes a static method `get_dname`: -```text +```sql CREATE OR REPLACE TYPE dept_obj_typ AS OBJECT ( deptno NUMBER(2), STATIC FUNCTION get_dname (p_deptno IN NUMBER) RETURN VARCHAR2, @@ -207,7 +207,7 @@ CREATE OR REPLACE TYPE dept_obj_typ AS OBJECT ( Create a nested table type `budget_tbl_typ` of data type `NUMBER(8,2)`: -```text +```sql CREATE OR REPLACE TYPE budget_tbl_typ IS TABLE OF NUMBER(8,2); ``` @@ -217,7 +217,7 @@ This example uses a composite type accessed from an anonymous block. This example creates the composite type: -```text +```sql CREATE OR REPLACE TYPE emphist_typ AS ( empno NUMBER(4), ename VARCHAR2(10), @@ -229,7 +229,7 @@ CREATE OR REPLACE TYPE emphist_typ AS ( This code shows the anonymous block that accesses the composite type: -```text +```sql DECLARE v_emphist EMPHIST_TYP; BEGIN @@ -256,7 +256,7 @@ This example uses a composite type accessed from a user-defined record type decl The following creates the composite type: -```text +```sql CREATE OR REPLACE TYPE salhist_typ AS ( startdate DATE, job VARCHAR2(9), @@ -266,7 +266,7 @@ CREATE OR REPLACE TYPE salhist_typ AS ( The following defines the package specification: -```text +```sql CREATE OR REPLACE PACKAGE emp_salhist IS PROCEDURE fetch_emp ( @@ -277,7 +277,7 @@ END; The following defines the package body: -```text +```sql CREATE OR REPLACE PACKAGE BODY emp_salhist IS TYPE emprec_typ IS RECORD ( @@ -327,9 +327,9 @@ The associative array definition `TYPE emp_arr_typ IS TABLE OF emprec_typ` refer This example invokes the package procedure that loads the array from a join of the `emp` and `jobhist` tables and then displays the array content: -```text +```sql EXEC emp_salhist.fetch_emp(7788); - +__OUTPUT__ EMPNO ENAME STARTDATE JOB SAL ----- ------- --------- --------- --------- 7788 SCOTT 19-APR-87 CLERK 1,000.00 diff --git a/product_docs/docs/epas/15/epas_compat_sql/40_create_type_body.mdx b/product_docs/docs/epas/15/epas_compat_sql/40_create_type_body.mdx index 7fc656151e4..88a807f612d 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/40_create_type_body.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/40_create_type_body.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE [ OR REPLACE ] TYPE BODY { IS | AS } [...] @@ -29,7 +29,7 @@ subprogram_spec Where `subprogram_spec` is: -```text +```sql { MEMBER | STATIC } { PROCEDURE [ ( [ SELF [ IN | IN OUT ] ] @@ -108,7 +108,7 @@ If you include a schema name, then the object type body is created in the specif Create the object type body for object type `emp_obj_typ`: -```text +```sql CREATE OR REPLACE TYPE BODY emp_obj_typ AS MEMBER PROCEDURE display_emp (SELF IN OUT emp_obj_typ) IS @@ -124,7 +124,7 @@ END; Create the object type body for object type `dept_obj_typ`: -```text +```sql CREATE OR REPLACE TYPE BODY dept_obj_typ AS STATIC FUNCTION get_dname (p_deptno IN NUMBER) RETURN VARCHAR2 IS diff --git a/product_docs/docs/epas/15/epas_compat_sql/41_create_user.mdx b/product_docs/docs/epas/15/epas_compat_sql/41_create_user.mdx index 2f8b216dcf5..607d9601188 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/41_create_user.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/41_create_user.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE USER [IDENTIFIED BY ] ``` @@ -42,7 +42,7 @@ The maximum length allowed for the user name and password is 63 characters. Create a user named `john`: -```text +```sql CREATE USER john IDENTIFIED BY abc; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/42_create_user_role_profile_management_clauses.mdx b/product_docs/docs/epas/15/epas_compat_sql/42_create_user_role_profile_management_clauses.mdx index f9a0463c6b8..584ed671ba8 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/42_create_user_role_profile_management_clauses.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/42_create_user_role_profile_management_clauses.mdx @@ -14,13 +14,13 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE USER|ROLE [[WITH] option […]] ``` Where `option` is any of the following compatible clauses: -```text +```sql PROFILE | ACCOUNT {LOCK|UNLOCK} | PASSWORD EXPIRE [AT ''] @@ -28,7 +28,7 @@ Where `option` is any of the following compatible clauses: Alternatively, `option` can be any of the following non-compatible clauses: -```text +```sql | LOCK TIME '' ``` @@ -70,7 +70,7 @@ Each login role can have only one profile. To find the profile that's currently This example uses `CREATE USER` to create a login role named `john` that is associated with the `acctg_profile` profile: -```text +```sql CREATE USER john PROFILE acctg_profile IDENTIFIED BY “1safepwd”; ``` @@ -78,7 +78,7 @@ CREATE USER john PROFILE acctg_profile IDENTIFIED BY “1safepwd”; This example uses `CREATE ROLE` to create a login role named `john` that is associated with the `acctg_profile` profile: -```text +```sql CREATE ROLE john PROFILE acctg_profile LOGIN PASSWORD “1safepwd”; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/43_create_view.mdx b/product_docs/docs/epas/15/epas_compat_sql/43_create_view.mdx index e7e34cbae74..b85e18c2122 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/43_create_view.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/43_create_view.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql CREATE [ OR REPLACE ] VIEW [ ( [, ...] ) ] AS ``` @@ -51,7 +51,7 @@ Permissions of the view owner determine access to tables referenced in the view. Create a view consisting of all employees in department 30: -```text +```sql CREATE VIEW dept_30 AS SELECT * FROM emp WHERE deptno = 30; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/44_delete.mdx b/product_docs/docs/epas/15/epas_compat_sql/44_delete.mdx index 0dfb69c6db6..a54a0350021 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/44_delete.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/44_delete.mdx @@ -71,13 +71,13 @@ The result set of the `DELETE` command can contain zero, one, or more rows. The Delete all rows for employee `7900` from the `jobhist` table: -```text +```sql DELETE FROM jobhist WHERE empno = 7900; ``` Clear the table `jobhist`: -```text +```sql DELETE FROM jobhist; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/45_drop_public_database_link.mdx b/product_docs/docs/epas/15/epas_compat_sql/45_drop_public_database_link.mdx index c5b72e4a000..215fa44096b 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/45_drop_public_database_link.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/45_drop_public_database_link.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP [ PUBLIC ] DATABASE LINK ``` @@ -36,13 +36,13 @@ DROP [ PUBLIC ] DATABASE LINK Remove the public database link named `oralink`: -```text +```sql DROP PUBLIC DATABASE LINK oralink; ``` Remove the private database link named `edblink`: -```text +```sql DROP DATABASE LINK edblink; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/46_drop_directory.mdx b/product_docs/docs/epas/15/epas_compat_sql/46_drop_directory.mdx index 5a0f29e040a..4942688a918 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/46_drop_directory.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/46_drop_directory.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP DIRECTORY ``` @@ -34,7 +34,7 @@ When you delete a directory alias, the corresponding physical file system direct Remove the directory alias `empdir`: -```text +```sql DROP DIRECTORY empdir; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/47_drop_function.mdx b/product_docs/docs/epas/15/epas_compat_sql/47_drop_function.mdx index 4c60f516929..0a95bf5c8a4 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/47_drop_function.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/47_drop_function.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP FUNCTION [ IF EXISTS ] [ ([ [ ] [ ] ] [, ...]) ] [ CASCADE | RESTRICT ] @@ -72,7 +72,7 @@ The `IF EXISTS`, `CASCADE`, and `RESTRICT` parameters aren't compatible with Ora This example removes the `emp_comp` function: -```text +```sql DROP FUNCTION emp_comp(NUMBER, NUMBER); ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/48_drop_index.mdx b/product_docs/docs/epas/15/epas_compat_sql/48_drop_index.mdx index 8d25f9a7d92..fcee424056f 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/48_drop_index.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/48_drop_index.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP INDEX ``` @@ -32,7 +32,7 @@ DROP INDEX This example removes the index `name_idx`: -```text +```sql DROP INDEX name_idx; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/49_drop_package.mdx b/product_docs/docs/epas/15/epas_compat_sql/49_drop_package.mdx index 86e1a30610d..979e4d3c8c2 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/49_drop_package.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/49_drop_package.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP PACKAGE [ BODY ] ``` @@ -32,7 +32,7 @@ DROP PACKAGE [ BODY ] This example removes the `emp_admin` package: -```text +```sql DROP PACKAGE emp_admin; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/50_drop_procedure.mdx b/product_docs/docs/epas/15/epas_compat_sql/50_drop_procedure.mdx index a2719d3416c..9933bc5209c 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/50_drop_procedure.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/50_drop_procedure.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP PROCEDURE [ IF EXISTS ] [ ([ [ ] [ ] ] [, ...]) ] [ CASCADE | RESTRICT ] @@ -73,7 +73,7 @@ The `IF EXISTS`, `CASCADE`, and `RESTRICT` parameters aren't compatible with Ora This example removes the `select_emp` procedure: -```text +```sql DROP PROCEDURE select_emp; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/51_drop_profile.mdx b/product_docs/docs/epas/15/epas_compat_sql/51_drop_profile.mdx index ac77af697be..fa63ebafa4e 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/51_drop_profile.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/51_drop_profile.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP PROFILE [IF EXISTS] [CASCADE | RESTRICT]; ``` @@ -34,13 +34,13 @@ Include the optional `CASCADE` clause to reassign any users that are currently a This example drops a profile named `acctg_profile`. The command first associates any roles associated with the `acctg_profile` profile with the `default` profile and then drops the `acctg_profile` profile. -```text +```sql DROP PROFILE acctg_profile CASCADE; ``` This example drops a profile named `acctg_profile`. The `RESTRICT` clause prevents dropping `acctg_profile` if any roles are associated with the profile. -```text +```sql DROP PROFILE acctg_profile RESTRICT; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/52_drop_queue.mdx b/product_docs/docs/epas/15/epas_compat_sql/52_drop_queue.mdx index a80e5ae6fb5..a2b4b3cb0fa 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/52_drop_queue.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/52_drop_queue.mdx @@ -17,7 +17,7 @@ EDB Postgres Advanced Server includes syntax not offered by Oracle with the `DRO Use `DROP QUEUE` to drop an existing queue: -```text +```sql DROP QUEUE [IF EXISTS] ``` @@ -39,7 +39,7 @@ DROP QUEUE [IF EXISTS] This example drops a queue named `work_order`: -```text +```sql DROP QUEUE work_order; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/53_drop_queue_table.mdx b/product_docs/docs/epas/15/epas_compat_sql/53_drop_queue_table.mdx index ae11b55000e..a22540d9577 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/53_drop_queue_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/53_drop_queue_table.mdx @@ -17,7 +17,7 @@ EDB Postgres Advanced Server includes syntax not offered by Oracle with the `DRO Use `DROP QUEUE TABLE` to delete a queue table: -```text +```sql DROP QUEUE TABLE [ IF EXISTS ] [, ...] [CASCADE | RESTRICT] ``` @@ -48,7 +48,7 @@ DROP QUEUE TABLE [ IF EXISTS ] [, ...] This example deletes a queue table named `work_order_table` and any objects that depend on it: -```text +```sql DROP QUEUE TABLE work_order_table CASCADE; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/54_drop_synonym.mdx b/product_docs/docs/epas/15/epas_compat_sql/54_drop_synonym.mdx index b45935999a1..5d3c17c7fb4 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/54_drop_synonym.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/54_drop_synonym.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP [PUBLIC] SYNONYM [.] ``` @@ -36,7 +36,7 @@ DROP [PUBLIC] SYNONYM [.] You can optionally include the `PUBLIC` clause to drop a synonym that resides in the `public` schema. The `DROP PUBLIC SYNONYM` command, compatible with Oracle databases, drops a synonym that resides in the `public` schema: -```text +```sql DROP PUBLIC SYNONYM syn_name; ``` @@ -44,7 +44,7 @@ DROP PUBLIC SYNONYM syn_name; This example drops the synonym `personnel`: -```text +```sql DROP SYNONYM personnel; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/55_drop_role.mdx b/product_docs/docs/epas/15/epas_compat_sql/55_drop_role.mdx index 1ab0c377ccd..1cfb7a1a5a8 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/55_drop_role.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/55_drop_role.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP ROLE [ CASCADE ] ``` @@ -42,7 +42,7 @@ Alternatively, if the only objects owned by the role belong in a schema that's o This example drops a role: -```text +```sql DROP ROLE admins; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/56_drop_sequence.mdx b/product_docs/docs/epas/15/epas_compat_sql/56_drop_sequence.mdx index 760131136cd..c5c88ac9d8c 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/56_drop_sequence.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/56_drop_sequence.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP SEQUENCE [, ...] ``` @@ -32,7 +32,7 @@ DROP SEQUENCE [, ...] Remove the sequence `serial`: -```text +```sql DROP SEQUENCE serial; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/57_drop_table.mdx b/product_docs/docs/epas/15/epas_compat_sql/57_drop_table.mdx index d1653bbb426..16f65c92773 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/57_drop_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/57_drop_table.mdx @@ -17,7 +17,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP TABLE [CASCADE | RESTRICT | CASCADE CONSTRAINTS] ``` @@ -47,13 +47,13 @@ DROP TABLE [CASCADE | RESTRICT | CASCADE CONSTRAINTS] This example drops a table named `emp` that has no dependencies: -```text +```sql DROP TABLE emp; ``` The outcome of a `DROP TABLE` command varies depending on whether the table has any dependencies. You can control the outcome by specifying a drop behavior. For example, suppose you create two tables, `orders` and `items`, where the `items` table depends on the `orders` table: -```text +```sql CREATE TABLE orders (order_id int PRIMARY KEY, order_date date, …); CREATE TABLE items diff --git a/product_docs/docs/epas/15/epas_compat_sql/58_drop_tablespace.mdx b/product_docs/docs/epas/15/epas_compat_sql/58_drop_tablespace.mdx index 39bea54735a..9fa0cc56186 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/58_drop_tablespace.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/58_drop_tablespace.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP TABLESPACE ``` @@ -34,7 +34,7 @@ Only a superuser or the tablespace owner can drop a tablespace. The tablespace m This example removes the tablespace `employee_space` from the system: -```text +```sql DROP TABLESPACE employee_space; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/59_drop_trigger.mdx b/product_docs/docs/epas/15/epas_compat_sql/59_drop_trigger.mdx index c520e226f52..d316899f05a 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/59_drop_trigger.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/59_drop_trigger.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP TRIGGER ``` @@ -32,7 +32,7 @@ DROP TRIGGER Remove a trigger named `emp_salary_trig`: -```text +```sql DROP TRIGGER emp_salary_trig; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/60_drop_type.mdx b/product_docs/docs/epas/15/epas_compat_sql/60_drop_type.mdx index 357fdc32ae2..3a8d9c6a1b6 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/60_drop_type.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/60_drop_type.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP TYPE [ BODY ] ``` @@ -36,13 +36,13 @@ The type isn't deleted if other database objects depend on the named type. Drop the object type named `addr_obj_typ`: -```text +```sql DROP TYPE addr_obj_typ; ``` Drop the nested table type named `budget_tbl_typ`: -```text +```sql DROP TYPE budget_tbl_typ; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/61_drop_user.mdx b/product_docs/docs/epas/15/epas_compat_sql/61_drop_user.mdx index ea9fcb4da37..7c295f5b3b0 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/61_drop_user.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/61_drop_user.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP USER [ CASCADE ] ``` @@ -42,13 +42,13 @@ Alternatively, if the only objects owned by the user belong in a schema that's o Drop a user account named `john` that owns no objects and doesn't have privileges on any other objects: -```text +```sql DROP USER john; ``` Drop the user account `john` that doesn't have privileges on any objects. The account also doesn't own any objects outside of a schema named `john` that's owned by the user `john`: -```text +```sql DROP USER john CASCADE; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/62_drop_view.mdx b/product_docs/docs/epas/15/epas_compat_sql/62_drop_view.mdx index c4c86cb2fe7..aea833ff763 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/62_drop_view.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/62_drop_view.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql DROP VIEW ``` @@ -34,7 +34,7 @@ The form of the `DROP VIEW` command compatible with Oracle doesn't support a `CA This example removes the view named `dept_30`: -```text +```sql DROP VIEW dept_30; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/63_exec.mdx b/product_docs/docs/epas/15/epas_compat_sql/63_exec.mdx index b4f2164cc7e..7d76e2fd273 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/63_exec.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/63_exec.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql EXEC function_name ['('[]')'] ``` @@ -36,7 +36,7 @@ EXEC function_name ['('[]')'] The `EXEC` statement can take one of several forms, depending on the arguments required by the function: -```text +```sql EXEC update_balance; EXEC update_balance(); EXEC update_balance(1,2,3); diff --git a/product_docs/docs/epas/15/epas_compat_sql/64_grant.mdx b/product_docs/docs/epas/15/epas_compat_sql/64_grant.mdx index aeedb0e753d..94e796f2776 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/64_grant.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/64_grant.mdx @@ -20,7 +20,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [,...] | ALL [ PRIVILEGES ] } ON tablename @@ -183,13 +183,13 @@ Currently, EDB Postgres Advanced Server doesn't support granting or revoking pri Grant insert privilege to all users on table `emp`: -```text +```sql GRANT INSERT ON emp TO PUBLIC; ``` Grant all available privileges to user `mary` on view `salesemp`: -```text +```sql GRANT ALL PRIVILEGES ON salesemp TO mary; ``` @@ -197,13 +197,13 @@ While this example does grant all privileges if executed by a superuser or the o Grant membership in role `admins` to user `joe`: -```text +```sql GRANT admins TO joe; ``` Grant `CONNECT` privilege to user `joe`: -```text +```sql GRANT CONNECT TO joe; ``` @@ -229,7 +229,7 @@ This variant of the `GRANT` command gives a role the ability to perform certain The `EXEMPT ACCESS POLICY` privilege can't be inherited by membership to a role that has the `EXEMPT ACCESS POLICY` privilege. For example, the following sequence of `GRANT` commands doesn't result in user `joe` obtaining the `EXEMPT ACCESS POLICY` privilege. This is true even though `joe` is granted membership to the `enterprisedb` role, which was granted the `EXEMPT ACCESS POLICY` privilege: -```text +```sql GRANT EXEMPT ACCESS POLICY TO enterprisedb; GRANT enterprisedb TO joe; ``` @@ -240,19 +240,19 @@ GRANT enterprisedb TO joe; Grant `CREATE PUBLIC DATABASE LINK` privilege to user `joe`: -```text +```sql GRANT CREATE PUBLIC DATABASE LINK TO joe; ``` Grant `DROP PUBLIC DATABASE LINK` privilege to user `joe`: -```text +```sql GRANT DROP PUBLIC DATABASE LINK TO joe; ``` Grant the `EXEMPT ACCESS POLICY` privilege to user `joe`: -```text +```sql GRANT EXEMPT ACCESS POLICY TO joe; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/65_insert.mdx b/product_docs/docs/epas/15/epas_compat_sql/65_insert.mdx index 4a29e5075ed..6407a844541 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/65_insert.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/65_insert.mdx @@ -10,7 +10,7 @@ title: "INSERT" ## Synopsis -```text +```sql INSERT INTO
[@ | [ AS ] ] [ ( [, ...] ) ] { VALUES ( { | DEFAULT } [, ...] ) [ RETURNING [, ...] @@ -94,26 +94,26 @@ You need `INSERT` privilege to a table to insert into it. If you use the `query` Insert a single row into table `emp`: -```text +```sql INSERT INTO emp VALUES (8021,'JOHN','SALESMAN',7698,'22-FEB-07',1250,500,30); ``` This example omits the column `comm`, which means it uses the default value of null: -```text +```sql INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, deptno) VALUES (8022,'PETERS','CLERK',7698,'03-DEC-06',950,30); ``` This example uses the `DEFAULT` clause for the `hiredate` and `comm` columns rather than specifying a value: -```text +```sql INSERT INTO emp VALUES (8023,'FORD','ANALYST',7566,NULL,3000,NULL,20); ``` This example creates a table for the department names and then inserts into the table by selecting from the `dname` column of the `dept` table: -```text +```sql CREATE TABLE deptnames ( deptname VARCHAR2(14) ); @@ -122,7 +122,7 @@ INSERT INTO deptnames SELECT dname FROM dept; This example creates an alias `enm` for the table `emp` and inserts rows into a table: -```text +```sql INSERT INTO emp AS enm (enm.empno, enm.ename, enm.job, enm.mgr, enm.hiredate, enm.sal, enm.deptno) VALUES (7499, 'SMITH', 'ANALYST', 7902, '03-DEC-06', 2500, 20); ``` \ No newline at end of file diff --git a/product_docs/docs/epas/15/epas_compat_sql/66_lock.mdx b/product_docs/docs/epas/15/epas_compat_sql/66_lock.mdx index 61535d13f58..9052b15a109 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/66_lock.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/66_lock.mdx @@ -14,13 +14,13 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql LOCK TABLE [, ...] IN MODE [ NOWAIT ] ``` Where `lockmode` is one of: -``` +```text ROW SHARE | ROW EXCLUSIVE | SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/67_revoke.mdx b/product_docs/docs/epas/15/epas_compat_sql/67_revoke.mdx index 706bdb35dd7..b934e654133 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/67_revoke.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/67_revoke.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql REVOKE { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [,...] | ALL [ PRIVILEGES ] } ON tablename @@ -101,37 +101,37 @@ If the role executing `REVOKE` holds privileges indirectly by more than one role Revoke insert privilege for the public on table `emp`: -```text +```sql REVOKE INSERT ON emp FROM PUBLIC; ``` Revoke all privileges from user `mary` on view `salesemp`. This actually means “revoke all privileges that I granted.” -```text +```sql REVOKE ALL PRIVILEGES ON salesemp FROM mary; ``` Revoke membership in role `admins` from user `joe`: -```text +```sql REVOKE admins FROM joe; ``` Revoke `CONNECT` privilege from user `joe`: -```text +```sql REVOKE CONNECT FROM joe; ``` Revoke `CREATE DATABASE LINK` privilege from user `joe`: -```text +```sql REVOKE CREATE DATABASE LINK FROM joe; ``` Revoke the `EXEMPT ACCESS POLICY` privilege from user `joe`: -```text +```sql REVOKE EXEMPT ACCESS POLICY FROM joe; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/68_rollback.mdx b/product_docs/docs/epas/15/epas_compat_sql/68_rollback.mdx index 54ca95f0b90..7cae1876206 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/68_rollback.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/68_rollback.mdx @@ -10,7 +10,7 @@ title: "ROLLBACK" ## Synopsis -```text +```sql ROLLBACK [ WORK ] ``` @@ -37,7 +37,7 @@ Issuing `ROLLBACK` when not inside a transaction does no harm. Abort all changes: -```text +```sql ROLLBACK; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/69_rollback_to_savepoint.mdx b/product_docs/docs/epas/15/epas_compat_sql/69_rollback_to_savepoint.mdx index 03654d5dd61..1a02b57953e 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/69_rollback_to_savepoint.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/69_rollback_to_savepoint.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql ROLLBACK [ WORK ] TO [ SAVEPOINT ] ``` @@ -40,7 +40,7 @@ Specifying a savepoint name that wasn't established is an error. Undo the effects of the commands executed from the point when savepoint `depts` was established: -```text +```sql \set AUTOCOMMIT off INSERT INTO dept VALUES (50, 'HR', 'NEW YORK'); SAVEPOINT depts; diff --git a/product_docs/docs/epas/15/epas_compat_sql/70_savepoint.mdx b/product_docs/docs/epas/15/epas_compat_sql/70_savepoint.mdx index e595511cdb2..110ce440f7d 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/70_savepoint.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/70_savepoint.mdx @@ -10,7 +10,7 @@ title: "SAVEPOINT" ## Synopsis -```text +```sql SAVEPOINT ``` @@ -40,7 +40,7 @@ When another savepoint is established with the same name as a previous savepoint Establish a savepoint and then undo the effects of all commands executed after it: -```text +```sql \set AUTOCOMMIT off INSERT INTO dept VALUES (50, 'HR', 'NEW YORK'); SAVEPOINT depts; diff --git a/product_docs/docs/epas/15/epas_compat_sql/71_select.mdx b/product_docs/docs/epas/15/epas_compat_sql/71_select.mdx index 2756683a0ea..69d171b85ec 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/71_select.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/71_select.mdx @@ -10,7 +10,7 @@ title: "SELECT" ## Synopsis -```text +```sql SELECT [ optimizer_hint ] [ ALL | DISTINCT | UNIQUE ] * | expression [ AS output_name ] [, ...] FROM from_item [, ...] @@ -30,7 +30,7 @@ SELECT [ optimizer_hint ] [ ALL | DISTINCT | UNIQUE ] Where `from_item` can be one of: -```text +```sql table_name[@dblink ] [ alias ] ( select ) alias from_item [ NATURAL ] join_type from_item @@ -63,7 +63,7 @@ You must have `SELECT` privilege on a table to read its values. The use of `FOR The `FROM` clause specifies one or more source tables for a `SELECT` statement. The syntax is: -```text +```sql FROM source [, ...] ``` @@ -125,8 +125,9 @@ If you specify multiple sources, the result is the Cartesian product (cross join This example selects all of the entries from the `dept` table: -```text +```sql SELECT * FROM dept; +__OUTPUT__ deptno | dname | loc -------+-------------+----------- 10 | ACCOUNTING | NEW YORK @@ -140,7 +141,7 @@ deptno | dname | loc The optional `WHERE` clause has the form: -```text +```sql WHERE condition ``` @@ -150,11 +151,11 @@ where `condition` is any expression that evaluates to a result of type `BOOLEAN` This example joins the contents of the `emp` and `dept` tables. The value of the `deptno` column in the `emp` table is equal to the value of the `deptno` column in the `deptno` table. -```text +```sql SELECT d.deptno, d.dname, e.empno, e.ename, e.mgr, e.hiredate FROM emp e, dept d WHERE d.deptno = e.deptno; - +__OUTPUT__ deptno | dname | empno | ename | mgr | hiredate --------+------------+-------+--------+------+-------------------- 10 | ACCOUNTING | 7934 | MILLER | 7782 | 23-JAN-82 00:00:00 @@ -178,7 +179,7 @@ SELECT d.deptno, d.dname, e.empno, e.ename, e.mgr, e.hiredate The optional `GROUP BY` clause has the form: -```text +```sql GROUP BY { expression | ROLLUP ( expr_list ) | CUBE ( expr_list ) | GROUPING SETS ( expr_list ) } [, ...] ``` @@ -193,11 +194,11 @@ Aggregate functions, if any are used, are computed across all rows making up eac This example computes the sum of the `sal` column in the `emp` table, grouping the results by department number: -```text +```sql SELECT deptno, SUM(sal) AS total FROM emp GROUP BY deptno; - +__OUTPUT__ deptno | total --------+---------- 10 | 8750.00 @@ -210,7 +211,7 @@ SELECT deptno, SUM(sal) AS total The optional `HAVING` clause has the form: -```text +```sql HAVING condition ``` @@ -222,12 +223,12 @@ Where `condition` is the same as specified for the `WHERE` clause. Sum the column `sal` of all employees, group the results by department number, and show those group totals that are less than 10000: -```text +```sql SELECT deptno, SUM(sal) AS total FROM emp GROUP BY deptno HAVING SUM(sal) < 10000; - +__OUTPUT__ deptno | total --------+--------- 10 | 8750.00 @@ -245,9 +246,9 @@ Instead of an expression, you can write \* in the output list as a shorthand for The `SELECT` list in this example specifies for the result set to include the `empno` column, the `ename` column, the `mgr` column, and the `hiredate` column: -```text +```sql SELECT empno, ename, mgr, hiredate FROM emp; - +__OUTPUT__ empno | ename | mgr | hiredate -------+--------+------+-------------------- 7934 | MILLER | 7782 | 23-JAN-82 00:00:00 @@ -271,7 +272,7 @@ SELECT empno, ename, mgr, hiredate FROM emp; The `UNION` clause has the form: -```text +```sql select_statement UNION [ ALL ] select_statement ``` @@ -289,7 +290,7 @@ Currently, you can't specify `FOR UPDATE` either for a `UNION` result or for any The `INTERSECT` clause has the form: -```text +```sql select_statement INTERSECT select_statement ``` @@ -305,7 +306,7 @@ Without parentheses, multiple `INTERSECT` operators in the same `SELECT` stateme The `MINUS` clause has this general form: -```text +```sql select_statement MINUS select_statement ``` @@ -321,7 +322,7 @@ Without parentheses, multiple `MINUS` operators in the same `SELECT` statement a The `CONNECT BY` clause determines the parent-child relationship of rows when performing a hierarchical query. It has the general form: -```text +```sql CONNECT BY { PRIOR parent_expr = child_expr | child_expr = PRIOR parent_expr } ``` @@ -345,7 +346,7 @@ You can specify the following optional clauses with the `CONNECT BY` clause. The optional `ORDER BY` clause has the form: -```text +```sql ORDER BY expression [ ASC | DESC ] [, ...] ``` @@ -357,7 +358,7 @@ The ordinal number refers to the ordinal (left-to-right) position of the result You also can use arbitrary expressions in the `ORDER BY` clause, including columns that don't appear in the `SELECT` result list. Thus the following statement is valid: -```text +```sql SELECT ename FROM emp ORDER BY empno; ``` @@ -378,9 +379,9 @@ Character-string data is sorted according to the locale-specific collation order These examples sort the individual results according to the contents of the second column (`dname`): -```text +```sql SELECT * FROM dept ORDER BY dname; - +__OUTPUT__ deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK @@ -388,9 +389,10 @@ SELECT * FROM dept ORDER BY dname; 20 | RESEARCH | DALLAS 30 | SALES | CHICAGO (4 rows) - +``` +```sql SELECT * FROM dept ORDER BY 2; - +__OUTPUT__ deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK @@ -402,14 +404,14 @@ SELECT * FROM dept ORDER BY 2; This example uses the `SELECT DISTINCT ...ORDER BY` clause to fetch the `job` and `deptno` from table `emp`: -```text +```sql CREATE TABLE EMP(EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), DEPTNO NUMBER(2)); ``` -```text +```sql INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 20); INSERT 0 1 INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 30); @@ -420,8 +422,9 @@ INSERT INTO EMP VALUES (7566, 'JONES', 'MANAGER', 20); INSERT 0 1 ``` -```text +```sql SELECT DISTINCT e.job, e.deptno FROM emp e ORDER BY e.job, e.deptno; +__OUTPUT__ job | deptno ----------+-------- CLERK | 20 @@ -436,7 +439,7 @@ If a `SELECT` statement specifies `DISTINCT` or `UNIQUE`, all duplicate rows are Error messages resulting from the improper use of a `SELECT` statement that includes the `DISTINCT` or `UNIQUE` keywords include both the `DISTINCT | UNIQUE` keywords: -```text +```sql psql: ERROR: FOR UPDATE is not allowed with DISTINCT/UNIQUE clause ``` @@ -444,7 +447,7 @@ psql: ERROR: FOR UPDATE is not allowed with DISTINCT/UNIQUE clause The `FOR UPDATE` clause takes the form: -```text +```sql FOR UPDATE [WAIT n|NOWAIT|SKIP LOCKED] ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/72_set_constraints.mdx b/product_docs/docs/epas/15/epas_compat_sql/72_set_constraints.mdx index 808239057df..4916d8f8b2d 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/72_set_constraints.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/72_set_constraints.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE } ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/73_set_role.mdx b/product_docs/docs/epas/15/epas_compat_sql/73_set_role.mdx index b125b35dcf0..428328f8ebb 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/73_set_role.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/73_set_role.mdx @@ -10,8 +10,8 @@ title: "SET ROLE" ## Synopsis -```text -SET ROLE { | NONE } +```sql +SET ROLE { rolename | NONE } ``` ## Description @@ -30,12 +30,12 @@ You can use this command to add or restrict privileges. If the session user role User `mary` takes on the identity of role `admins`: -```text +```sql SET ROLE admins; ``` User `mary` reverts back to their own identity: -```text +```sql SET ROLE NONE; ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/74_set_transaction.mdx b/product_docs/docs/epas/15/epas_compat_sql/74_set_transaction.mdx index 13d61642ffb..8ac74e3ce8c 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/74_set_transaction.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/74_set_transaction.mdx @@ -14,13 +14,13 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql SET TRANSACTION transaction_mode ``` Where `transaction_mode` is one of: -``` +```sql ISOLATION LEVEL { SERIALIZABLE | READ COMMITTED } READ WRITE | READ ONLY ``` diff --git a/product_docs/docs/epas/15/epas_compat_sql/75_truncate.mdx b/product_docs/docs/epas/15/epas_compat_sql/75_truncate.mdx index 54496324584..34bb2b4d087 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/75_truncate.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/75_truncate.mdx @@ -14,7 +14,7 @@ legacyRedirectsGenerated: ## Synopsis -```text +```sql TRUNCATE TABLE [DROP STORAGE] ``` @@ -40,7 +40,7 @@ You can't use `TRUNCATE` if there are foreign-key references to the table from o This command truncates a table named `accounts`: -```text +```sql TRUNCATE TABLE accounts; ``` diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/01_example_partition_pruning.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/01_example_partition_pruning.mdx index c80f3c1a23e..02dad79e825 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/01_example_partition_pruning.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/01_example_partition_pruning.mdx @@ -12,7 +12,7 @@ The `EXPLAIN` statement displays the execution plan of a statement. You can use This example shows the efficiency of partition pruning. Create a simple table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -31,14 +31,15 @@ PARTITION BY LIST(country) Perform a constrained query that includes the `EXPLAIN` statement: -```text +```sql EXPLAIN (COSTS OFF) SELECT * FROM sales WHERE country = 'INDIA'; ``` The resulting query plan shows that the server scans only the `sales_asia` table. That's the table in which a row with a `country` value of `INDIA` is stored. -```text +```sql edb=# EXPLAIN (COSTS OFF) SELECT * FROM sales WHERE country = 'INDIA'; +__OUTPUT__ QUERY PLAN --------------------------------------------------- Append @@ -49,14 +50,15 @@ edb=# EXPLAIN (COSTS OFF) SELECT * FROM sales WHERE country = 'INDIA'; Suppose you perform a query that searches for a row that matches a value not included in the partitioning key: -```text +```sql EXPLAIN (COSTS OFF) SELECT * FROM sales WHERE dept_no = '30'; ``` The resulting query plan shows that the server must look in all of the partitions to locate the rows that satisfy the query: -```text +```sql edb=# EXPLAIN (COSTS OFF) SELECT * FROM sales WHERE dept_no = '30'; +__OUTPUT__ QUERY PLAN ------------------------------------------- Append @@ -71,7 +73,7 @@ edb=# EXPLAIN (COSTS OFF) SELECT * FROM sales WHERE dept_no = '30'; Constraint exclusion also applies when querying subpartitioned tables: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -105,8 +107,9 @@ PARTITION BY RANGE(date) SUBPARTITION BY LIST (country) When you query the table, the query planner prunes any partitions or subpartitions from the search path that can't contain the desired result set: -```text +```sql edb=# EXPLAIN (COSTS OFF) SELECT * FROM sales WHERE country = 'US' AND date = 'Dec 12, 2012'; +__OUTPUT__ QUERY PLAN ----------------------------------------------------------------------------- ------------------------------------ diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/index.mdx index cb99b6542e8..0fefc1caa8b 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/03_using_partition_pruning/index.mdx @@ -53,7 +53,7 @@ Fast pruning is controlled by a Boolean configuration parameter named `edb_enabl For LIST-partitioned tables, EDB Postgres Advanced Server can fast prune queries that contain a `WHERE` clause that constrains a partitioning column to a literal value. For example, given a LIST-partitioned table such as: -```text +```sql CREATE TABLE sales_hist(..., country text, ...) PARTITION BY LIST(country) ( @@ -90,14 +90,14 @@ For range-partitioned tables, EDB Postgres Advanced Server can fast prune querie Fast pruning also reasons about more complex expressions involving `AND` and `BETWEEN` operators, such as: -```text +```sql WHERE size > 100 AND size <= 200 WHERE size BETWEEN 100 AND 200 ``` Fast pruning can't prune based on expressions involving `OR` or `IN`. For example, when querying a RANGE-partitioned table, such as: -```text +```sql CREATE TABLE boxes(id int, size int, color text) PARTITION BY RANGE(size) ( diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/01_example_partition_by_list.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/01_example_partition_by_list.mdx index 150a01c2e20..a817f1207c7 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/01_example_partition_by_list.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/01_example_partition_by_list.mdx @@ -6,7 +6,7 @@ title: "Example: PARTITION BY LIST" This example creates a partitioned table `sales` using the `PARTITION BY LIST` clause. The `sales` table stores information in three partitions: `europe`, `asia`, and `americas`. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -25,8 +25,9 @@ PARTITION BY LIST(country) The resulting table is partitioned by the value specified in the `country` column: -```text +```sql edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+--------------------- EUROPE | 'FRANCE', 'ITALY' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/02_example_automatic_list_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/02_example_automatic_list_partition.mdx index 8f4406f70d7..b679277b652 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/02_example_automatic_list_partition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/02_example_automatic_list_partition.mdx @@ -6,7 +6,7 @@ title: "Example: AUTOMATIC LIST PARTITION" This example shows a `sales` table that uses an `AUTOMATIC` clause to create an automatic list partitioned table on the `sales_state` column. The database creates a partition and adds data to a table. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -24,8 +24,9 @@ PARTITION BY LIST(sales_state) AUTOMATIC Query the `ALL_TAB_PARTITIONS` view to see an existing partition that's successfully created: -```text +```sql edb=# SELECT table_name, partition_name, high_value from ALL_TAB_PARTITIONS; +__OUTPUT__ table_name | partition_name | high_value ------------+----------------+-------------- SALES | P_CAL | 'CALIFORNIA' @@ -35,7 +36,7 @@ edb=# SELECT table_name, partition_name, high_value from ALL_TAB_PARTITIONS; Insert data into a `sales` table that can't fit into an existing partition. For the regular list partitioned table, you get an error. However, automatic list partitioning creates and inserts the data into a new partition. -```text +```sql edb=# INSERT INTO sales VALUES (1, 'IND', 'INDIANA'); INSERT 0 1 edb=# INSERT INTO sales VALUES (2, 'OHI', 'OHIO'); @@ -44,8 +45,9 @@ INSERT 0 1 Query the `ALL_TAB_PARTITIONS` view again after the insert. The partition is created, and data is inserted to hold a new value. A system-generated name of the partition is created that varies for each session. -```text +```sql edb=# SELECT table_name, partition_name, high_value from ALL_TAB_PARTITIONS; +__OUTPUT__ table_name | partition_name | high_value ------------+----------------+-------------- SALES | P_CAL | 'CALIFORNIA' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/03_example_partition_by_range.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/03_example_partition_by_range.mdx index d80fe5381d5..4ae22fdcbdf 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/03_example_partition_by_range.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/03_example_partition_by_range.mdx @@ -6,7 +6,7 @@ title: "Example: PARTITION BY RANGE" This example creates a partitioned table `sales` using the `PARTITION BY RANGE` clause. The `sales` table stores information in four partitions: `q1_2012`, `q2_2012`, `q3_2012` and `q4_2012`. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -30,8 +30,9 @@ PARTITION BY RANGE(date) The resulting table is partitioned by the value specified in the `date` column: -```text +```sql edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+---------------------- Q1_2012 | '01-APR-12 00:00:00' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/04_example_interval_range_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/04_example_interval_range_partition.mdx index 18032363d5c..a8b06eccca7 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/04_example_interval_range_partition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/04_example_interval_range_partition.mdx @@ -6,7 +6,7 @@ title: "Example: INTERVAL RANGE PARTITION" This example shows a `sales` table that's partitioned by interval on the `sold_month` column. The range partition is created to establish a transition point, and new partitions are created beyond that transition point. The database creates a new interval range partition and adds data to a table. -```text +```sql CREATE TABLE sales ( prod_id int, @@ -25,8 +25,9 @@ INTERVAL(NUMTOYMINTERVAL(1, 'MONTH')) Query the `ALL_TAB_PARTITIONS` view before the database creates an interval range partition: -```text +```sql edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+---------------------- P1 | '15-JAN-19 00:00:00' @@ -36,15 +37,16 @@ edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; Insert data into a `sales` table that exceeds the high value of a range partition: -```text +```sql edb=# INSERT INTO sales VALUES (1,200,'10-MAY-2019'); INSERT 0 1 ``` Query the `ALL_TAB_PARTITIONS` view again after the insert. The data is successfully inserted, and a system-generated name of the interval range partition is created. The name varies for each session. -```text +```sql edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+---------------------- P1 | '15-JAN-19 00:00:00' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/05_example_partition_by_hash.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/05_example_partition_by_hash.mdx index 7952b9646db..06462a007f9 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/05_example_partition_by_hash.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/05_example_partition_by_hash.mdx @@ -6,7 +6,7 @@ title: "Example: PARTITION BY HASH" This example creates a partitioned table `sales` using the `PARTITION BY HASH` clause. The `sales` table stores information in three partitions: `p1`, `p2`, and `p3`. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -25,8 +25,9 @@ PARTITION BY HASH (part_no) The table returns an empty string for the hash partition value specified in the `part_no` column: -```text +```sql edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+------------ P1 | @@ -37,8 +38,9 @@ edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; Use the following command to view the hash value of the `part_no` column: -```text +```sql edb=# \d+ sales +__OUTPUT__ Partitioned table "public.sales" Column | Type |Collation|Nullable|Default|Storage | ---------+----------------------------+----------+--------+------+---------+- @@ -55,8 +57,9 @@ Partitions: sales_p1 FOR VALUES WITH (modulus 3, remainder 0), The table is partitioned by the hash value of the values specified in the `part_no` column: -```text +```sql edb=# SELECT partition_name, partition_position from ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | partition_position ----------------+-------------------- P1 | 1 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/06_example_partitions_number.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/06_example_partitions_number.mdx index b21f306ac91..1a302ea5cd3 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/06_example_partitions_number.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/06_example_partitions_number.mdx @@ -6,7 +6,7 @@ title: "Example: PARTITION BY HASH...PARTITIONS num..." This example creates a hash-partitioned table `sales` using the `PARTITION BY HASH` clause. The partitioning column is `part_no`. The example specifies the number of partitions to create. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -20,9 +20,10 @@ PARTITION BY HASH (part_no) PARTITIONS 8; The eight partitions are created and assigned system-generated names. The partitions are stored in the default tablespace of the table. -```text +```sql edb=# SELECT table_name, partition_name FROM ALL_TAB_PARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name ------------+---------------- SALES | SYS0101 @@ -40,7 +41,7 @@ table_name = 'SALES' ORDER BY 1,2; This example creates a hash-partitioned table named `sales`. The example specifies the number of partitions to create and the tablespaces in which the partition resides. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -54,9 +55,10 @@ PARTITION BY HASH (part_no) PARTITIONS 5 STORE IN (ts1, ts2, ts3); The `STORE IN` clause evenly distributes the partitions across the tablespaces `ts1`, `ts2`, and `ts3`. -```text +```sql edb=# SELECT table_name, partition_name, tablespace_name FROM ALL_TAB_PARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | tablespace_name ------------+----------------+----------------- SALES | SYS0101 | TS1 @@ -73,7 +75,7 @@ The `HASH` partition clause allows you to define a partitioning strategy. You ca This example creates a table `sales` that's hash partitioned by `part_no` and subpartitioned using a range by `dept_no`. The example specifies the number of partitions when creating the table `sales`. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -87,9 +89,10 @@ PARTITION BY HASH (part_no) SUBPARTITION BY RANGE (dept_no) PARTITIONS 5; The five partitions are created with default subpartitions and assigned system-generated names: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | SYS0101 | SYS0102 @@ -104,7 +107,7 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example shows the table `sales` that's list-partitioned by `country`. It is subpartitioned using hash partitioning by the `dept_no` column. This example specifies the number of subpartitions when creating the table. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -123,9 +126,10 @@ PARTITION BY LIST (country) SUBPARTITION BY HASH (dept_no) SUBPARTITIONS 3 The three partitions `p1`, `p2`, and `p3` each contain three subpartitions with system-generated names: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | P1 | SYS0101 @@ -144,7 +148,7 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates the `sales` table, hash partitioned by `part_no` and hash subpartitioned by `dept_no`: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -159,9 +163,10 @@ PARTITIONS 2; The two partitions are created. Each partition includes three subpartitions with the system-generated name assigned to them. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | SYS0101 | SYS0102 @@ -177,7 +182,7 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates a hash-partitioned table `sales`. This example specifies the number of partitions and subpartitions to create when creating a hash partitioned table. It also specifies the tablespaces in which the subpartitions reside when creating a hash-partitioned table. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -192,9 +197,10 @@ PARTITIONS 2 STORE IN (ts1, ts2); The two partitions are created and assigned system-generated names. The partitions are stored in the default tablespace. Subpartitions are stored in tablespaces `ts1` and `ts2`. -```text +```sql edb=# SELECT table_name, partition_name, tablespace_name FROM ALL_TAB_PARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | tablespace_name ------------+----------------+----------------- SALES | SYS0101 | @@ -204,9 +210,10 @@ ALL_TAB_PARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; The `STORE IN` clause assigns the hash subpartitions to the tablespaces and stores them in the two named tablespaces `ts1` and `ts2`: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name, tablespace_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name | tablespace_name ------------+----------------+-------------------+----------------- SALES | SYS0101 | SYS0102 | TS1 @@ -222,7 +229,7 @@ FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates the hash-partitioned table `sales`. It specifies the number of partitions and subpartitions to create and the tablespaces in which the partitions and subpartitions reside. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -237,9 +244,10 @@ STORE IN (ts3) PARTITIONS 2 STORE IN (ts1, ts2); The two partitions are created with system-generated names and stored in the default tablespace: -```text +```sql edb=# SELECT table_name, partition_name, tablespace_name FROM ALL_TAB_PARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | tablespace_name ------------+----------------+----------------- SALES | SYS0101 | @@ -249,9 +257,10 @@ ALL_TAB_PARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; Each partition includes three subpartitions. The `STORE IN` clause stores the subpartitions in tablespaces `ts1` and `ts2`: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name, tablespace_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name | tablespace_name ------------+----------------+-------------------+----------------- SALES | SYS0101 | SYS0102 | TS1 @@ -270,7 +279,7 @@ FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates a range-partitioned table `sales`, which is first partitioned by the transaction date. Two range partitions are created and then hash subpartitioned using the value of the `country` column. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -288,9 +297,10 @@ PARTITION BY RANGE (date) SUBPARTITION BY HASH (country) SUBPARTITIONS 2 This statement creates a table with two partitions. The subpartition explicitly named `q1_europe` is created for partition `p1`. Because subpartitions aren't named for partition `p2`, the subpartitions are created based on the subpartition number and are assigned a system-generated name. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | P1 | Q1_EUROPE @@ -303,7 +313,7 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates a range-partitioned table `sales`. The table is first partitioned by the transaction date. Two range partitions are created and then hash subpartitioned using the value of the `country` column. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -321,9 +331,10 @@ PARTITION BY RANGE (date) SUBPARTITION BY HASH (country) SUBPARTITIONS 2 The partition `p1` explicitly defines the subpartition count in the partition description. By default, two subpartitions are created for partition `p2`. Since you don't name subpartitions, system-generated names are assigned. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | P1 | SYS0101 @@ -338,7 +349,7 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates a list-partitioned table `sales` with two list partitions. Partition `p1` consists of three subpartitions, and partition `p2` consists of two subpartitions. Since you don't name subpartitions, system-generated names are assigned. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -358,9 +369,10 @@ STORE IN (ts1) The partition `p2` explicitly defines the subpartition count in the partition description. Based on the definition, two subpartitions are created and stored in the tablespace named `ts2`. The subpartitions for partition `p1` are stored in the tablespace named `ts1`. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name, tablespace_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name | tablespace_name ------------+----------------+-------------------+----------------- SALES | P1 | SYS0101 | TS1 @@ -375,7 +387,7 @@ FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates a list-partitioned table `sales`. Partition `p1` consists of three subpartitions stored explicitly in the tablespace `ts2`. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -393,9 +405,10 @@ STORE IN (ts1) The `SELECT` statement shows partition `p1`, consisting of three subpartitions stored in the tablespace `ts2`: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name, tablespace_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name | tablespace_name ------------+----------------+-------------------+----------------- SALES | P1 | SYS0101 | TS2 @@ -406,17 +419,18 @@ FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command adds a partition `p2` to the `sales` table. Five subpartitions are created and distributed across the tablespace listed by the `STORE IN` clause. -```text +```sql ALTER TABLE sales ADD PARTITION p2 VALUES ('US', 'CANADA') SUBPARTITIONS 5 STORE IN (ts1); ``` A query of the `ALL_TAB_PARTITIONS` view shows the `sales` table with a partition named `p2`. The partition has five subpartitions. The `STORE IN` clause distributes the subpartitions across a tablespace named `ts1`. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name, tablespace_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' and partition_name = 'P2' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name | tablespace_name ------------+----------------+-------------------+----------------- SALES | P2 | SYS0105 | TS1 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/07_example_partition_by_range_subpartition_by_list.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/07_example_partition_by_range_subpartition_by_list.mdx index 0f763d9c25c..5b8216c8d91 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/07_example_partition_by_range_subpartition_by_list.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/07_example_partition_by_range_subpartition_by_list.mdx @@ -6,7 +6,7 @@ title: "Example: PARTITION BY RANGE, SUBPARTITION BY LIST" This example creates a partitioned table `sales` that's first partitioned by the transaction date. The range partitions `q1_2012`, `q2_2012`, `q3_2012` and `q4_2012` are then list subpartitioned using the value of the `country` column. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -51,8 +51,9 @@ PARTITION BY RANGE(date) This statement creates a table with four partitions. Each partition has three subpartitions. -```text +```sql edb=# SELECT subpartition_name, high_value, partition_name FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ subpartition_name | high_value | partition_name -------------------+---------------------+---------------- Q1_EUROPE | 'FRANCE', 'ITALY' | Q1_2012 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/08_example_creating_unique_index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/08_example_creating_unique_index.mdx index 029c13f5914..01d0a2e3de4 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/08_example_creating_unique_index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/08_example_creating_unique_index.mdx @@ -8,7 +8,7 @@ For unique-index partitioned tables, you can use the range, list, or hash-partit This example creates a partitioned table `sales` using the `PARTITION BY LIST` clause. The `sales` table stores information in three partitions: `europe`, `asia`, and `americas`. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -28,8 +28,9 @@ WITH(ROWIDS=TRUE); The table is partitioned by the value specified in the `country` column: -```text +```sql edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+--------------------- EUROPE | 'FRANCE', 'ITALY' @@ -40,15 +41,16 @@ edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; Insert values into the `sales` table: -```text +```sql INSERT INTO sales VALUES (10, '9519a', 'FRANCE', '18-Aug-2012', '650000'); INSERT INTO sales VALUES (10, '9519b', 'ITALY', '20-Aug-2012', '700000'); ``` This query shows that a unique index is created for the `sales` table: -```text +```sql edb=# SELECT oid, relname, relhasindex from pg_class where relname='sales'; +__OUTPUT__ oid | relname | relhasindex -------+---------+------------- 16557 | sales | f @@ -57,14 +59,17 @@ edb=# SELECT oid, relname, relhasindex from pg_class where relname='sales'; Querying the contents of the `sales_europe` confirms that the unique index is created for the table: -```text +```sql edb=# SELECT oid, relname, relhasindex from pg_class where relname='sales_europe'; +__OUTPUT__ oid | relname | relhasindex -------+--------------+------------- 16561 | sales_europe | t (1 row) - +``` +```sql edb=# SELECT * from pg_index where indrelid='16561'; +__OUTPUT__ indexrelid | indrelid | indnatts | indnkeyatts | indisunique | indisprimary | indisexclusion | indimmediate | indisclustered | indisvalid | indcheckxmin | indisready | indislive | indisreplident | indkey | indcollation | indclass | indoption | indexprs | indpred ------------+----------+----------+-------------+-------------+--------------+----------------+--------------+----------------+------------+--------------+------------+-----------+----------------+ diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/09_example_subpartition_template.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/09_example_subpartition_template.mdx index 1833b42668e..9bdc11c2af5 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/09_example_subpartition_template.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/09_example_subpartition_template.mdx @@ -8,7 +8,7 @@ These examples show how to create subpartitions in a partitioned table using a s This example creates a table `sales` list partitioned by `country` and subpartitioned using list by `date`. The `sales` table uses a subpartition template and displays the subpartition and tablespace name. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -32,9 +32,10 @@ PARTITION BY LIST (country) The `SELECT` statement shows partition `q1_2021` consisting of three subpartitions stored in tablespaces `ts1`, `ts2`, and `ts3`: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+----------------------+----------------- Q1_2021 | Q1_2021_AMERICAS | '01-JUL-21 00:00:00' | TS3 @@ -47,7 +48,7 @@ FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates a table `sales` list partitioned by `country` and subpartitioned using range partitioning by the `date` column: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -71,9 +72,10 @@ PARTITION BY LIST(country) The `sales` table creates a partition named `q1_2021` that includes three subpartitions stored in tablespaces `ts1`, `ts2`, and `ts3`. -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+----------------------+----------------- Q1_2021 | Q1_2021_AMERICAS | '01-JUL-21 00:00:00' | TS3 @@ -86,7 +88,7 @@ FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates a list-partitioned table `sales` that's first partitioned by `country` and then hash subpartitioned using the value of the `dept_no` column: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -110,9 +112,10 @@ PARTITION BY LIST(country) The `sales` table creates a `q1_2021` partition that includes three subpartitions stored in tablespaces `ts1`, `ts2`, and `ts3`. -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+------------+----------------- Q1_2021 | Q1_2021_AMERICAS | | TS3 @@ -125,7 +128,7 @@ FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates a `sales` table, interval partitioned using monthly intervals on the `date` column and hash subpartitioned using the value of the `dept_no` column: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -149,9 +152,10 @@ PARTITION BY RANGE(date) INTERVAL(NUMTOYMINTERVAL(1, 'MONTH')) The `sales` table creates a partition `q2_2021` consisting of three subpartitions stored in tablespaces `ts1`, `ts2`, and `ts3`: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+------------+----------------- Q2_2021 | Q2_2021_AMERICAS | | TS3 @@ -162,15 +166,16 @@ FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; Insert values into the `sales` table: -```text +```sql INSERT INTO sales VALUES (10, '9519a', 'FRANCE', '05-Jul-2021', '650000'); ``` The `SELECT` statement shows a system-generated name of partitions and subpartitions stored in tablespaces `ts1`, `ts2`, and `ts3`. -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+------------+----------------- Q2_2021 | Q2_2021_AMERICAS | | TS3 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx index 26d61a454e0..f285341472b 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx @@ -10,7 +10,7 @@ Use the `PARTITION BY` clause of the `CREATE TABLE` command to create a partitio Use this form to create a list-partitioned table: -```text +```sql CREATE TABLE [ schema. ] PARTITION BY LIST() [ AUTOMATIC ] @@ -37,7 +37,7 @@ Where `subpartition_template_description` is: Use this form to create a range-partitioned table: -```text +```sql CREATE TABLE [ schema. ] PARTITION BY RANGE([, ]...) @@ -65,7 +65,7 @@ Where `subpartition_template_description` is: Use this form to create a hash-partitioned table: -```text +```sql CREATE TABLE [ schema. ] PARTITION BY HASH([, ]...) @@ -92,7 +92,7 @@ Where `subpartition_template_description` is: `subpartition` can be one of the following: -```text +```sql { | | } Where `list_subpartition` is: diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/01_example_adding_a_partition_to_a_list_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/01_example_adding_a_partition_to_a_list_partitioned_table.mdx index a9c84884bc0..a6a65c60e7c 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/01_example_adding_a_partition_to_a_list_partitioned_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/01_example_adding_a_partition_to_a_list_partitioned_table.mdx @@ -6,7 +6,7 @@ title: "Example: Adding a partition to a LIST partitioned table" This example adds a partition to the list-partitioned `sales` table. The table was created using the command: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -25,8 +25,9 @@ PARTITION BY LIST(country) The table contains the three partitions `americas`, `asia`, and `europe`: -```text +```sql edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+--------------------- EUROPE | 'FRANCE', 'ITALY' @@ -37,15 +38,16 @@ edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; This command adds a partition named `east_asia` to the `sales` table: -```text +```sql ALTER TABLE sales ADD PARTITION east_asia VALUES ('CHINA', 'KOREA'); ``` After the command is invoked, the table includes the `east_asia` partition: -```text +```sql edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+--------------------- EUROPE | 'FRANCE', 'ITALY' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/02_example_adding_a_partition_to_a_range_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/02_example_adding_a_partition_to_a_range_partitioned_table.mdx index 3df3f3e9d7e..5e6f155359d 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/02_example_adding_a_partition_to_a_range_partitioned_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/02_example_adding_a_partition_to_a_range_partitioned_table.mdx @@ -6,7 +6,7 @@ title: "Example - Adding a partition to a RANGE partitioned table" This example adds a partition to a range-partitioned table named `sales`: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -30,8 +30,9 @@ PARTITION BY RANGE(date) The table contains the four partitions `q1_2012`, `q2_2012`, `q3_2012`, and `q4_2012`: -```text +```sql edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+---------------------- Q1_2012 | '01-APR-12 00:00:00' @@ -43,15 +44,16 @@ edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; This command adds a partition named `q1_2013` to the `sales` table: -```text +```sql ALTER TABLE sales ADD PARTITION q1_2013 VALUES LESS THAN('01-APR-2013'); ``` After the command is invoked, the table includes the `q1_2013` partition: -```text +```sql edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+---------------------- Q1_2012 | '01-APR-12 00:00:00' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/03_example_adding_a_partition_with_subpartitions_number.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/03_example_adding_a_partition_with_subpartitions_number.mdx index 06a0497ba22..f98b695302a 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/03_example_adding_a_partition_with_subpartitions_number.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/03_example_adding_a_partition_with_subpartitions_number.mdx @@ -6,7 +6,7 @@ title: "Example: Adding a partition with SUBPARTITIONS num...IN PARTITION DESCRI This example adds a partition to a list-partitioned `sales` table. You can specify a `SUBPARTITIONS` clause to add a specified number of subpartitions. The `sales` table was created with the command: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -24,9 +24,10 @@ PARTITION BY LIST (country) SUBPARTITION BY HASH (part_no) SUBPARTITIONS 2 The table contains two partitions: `europe` and `asia`. Each contains two subpartitions. Because the subpartitions aren't named, system-generated names are assigned to them. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | ASIA | SYS0103 @@ -38,16 +39,17 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command adds a partition `americas` to the `sales` table and creates a number of subpartitions as specified in the partition description: -```text +```sql ALTER TABLE sales ADD PARTITION americas VALUES ('US', 'CANADA'); ``` After invoking the command, the table includes the partition `americas` and two newly added subpartitions: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | AMERICAS | SYS0107 @@ -63,7 +65,7 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example adds a partition a list-partitioned table `sales` consisting of three subpartitions. The `sales` table was created with the command: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -81,9 +83,10 @@ PARTITION BY LIST (country) SUBPARTITION BY HASH (part_no) SUBPARTITIONS 3 The table contains partitions `europe` and `asia`, each containing three subpartitions: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | ASIA | SYS0104 @@ -97,17 +100,18 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command adds a partition `americas` and five subpartitions, as specified in the `ADD PARTITION` clause: -```text +```sql ALTER TABLE sales ADD PARTITION americas VALUES ('US', 'CANADA') SUBPARTITIONS 5; ``` After the command is invoked, the `sales` table includes the partition `americas` and five newly added subpartitions: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' and partition_name = 'AMERICAS' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | AMERICAS | SYS0109 @@ -122,7 +126,7 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' and partition_name = This example adds a partition to a list-partitioned table `sales` consisting of three subpartitions. The table was created using the command: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -141,9 +145,10 @@ PARTITION BY LIST (country) SUBPARTITION BY HASH (part_no) SUBPARTITIONS 3 The table contains the three partitions `americas`, `asia`, and `europe`. Each contains three subpartitions with system-generated names: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | AMERICAS | SYS0109 @@ -160,17 +165,18 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command adds a partition `east_asia` with five subpartitions as specified in the `ADD PARTITION` clause. It stores them in the tablespace named `ts1`. -```text +```sql ALTER TABLE sales ADD PARTITION east_asia VALUES ('CHINA', 'KOREA') SUBPARTITIONS 5 STORE IN (ts1); ``` After the command is invoked, the table includes the partition `east_asia` and five newly added subpartitions stored in tablespace `ts1`: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name, tablespace_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' and partition_name = 'EAST_ASIA' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name | tablespace_name ------------+----------------+-------------------+----------------- SALES | EAST_ASIA | SYS0113 | TS1 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/index.mdx index 38055c28cce..e3a434b7928 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/02_alter_table_add_partition/index.mdx @@ -11,7 +11,7 @@ legacyRedirectsGenerated: Use the `ALTER TABLE… ADD PARTITION` command to add a partition to an existing partitioned table. The syntax is: -```text +```sql ALTER TABLE ADD PARTITION ; Where partition_definition is: diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/01_example_adding_a_subpartition_to_a_list_range_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/01_example_adding_a_subpartition_to_a_list_range_partitioned_table.mdx index a431763872a..963206d15f2 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/01_example_adding_a_subpartition_to_a_list_range_partitioned_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/01_example_adding_a_subpartition_to_a_list_range_partitioned_table.mdx @@ -6,7 +6,7 @@ title: "Example: Adding a subpartition to a LIST/RANGE partitioned table" This example adds a `RANGE` subpartition to the list-partitioned `sales` table. The `sales` table was created with the command: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -44,8 +44,9 @@ PARTITION BY LIST(country) The `sales` table has three partitions named `europe`, `asia`, and `americas`. Each partition has two range-defined subpartitions. -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ partition_name | subpartition_name | high_value ----------------+-------------------+---------------------- EUROPE | EUROPE_2011 | '01-JAN-12 00:00:00' @@ -59,7 +60,7 @@ edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTI This command adds a subpartition named `europe_2013`: -```text +```sql ALTER TABLE sales MODIFY PARTITION europe ADD SUBPARTITION europe_2013 VALUES LESS THAN('2015-Jan-01'); @@ -67,8 +68,9 @@ ALTER TABLE sales MODIFY PARTITION europe After the command is invoked, the table includes a subpartition named `europe_2013`: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ partition_name | subpartition_name | high_value ----------------+-------------------+---------------------- EUROPE | EUROPE_2011 | '01-JAN-12 00:00:00' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/02_example_adding_a_subpartition_to_a_range_list_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/02_example_adding_a_subpartition_to_a_range_list_partitioned_table.mdx index 434fb0b0c35..9611e792d7a 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/02_example_adding_a_subpartition_to_a_range_list_partitioned_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/02_example_adding_a_subpartition_to_a_range_list_partitioned_table.mdx @@ -6,7 +6,7 @@ title: "Example: Adding a subpartition to a RANGE/LIST partitioned table" This example adds a `LIST` subpartition to the `RANGE` partitioned `sales` table. The `sales` table was created with the command: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -32,8 +32,9 @@ PARTITION BY RANGE(date) After the command is invoked, the `sales` table has two partitions, named `first_half_2012` and `second_half_2012`. The `first_half_2012 partition` has two subpartitions, named `europe` and `americas`. The `second_half_2012` partition has one partition, named `asia`. -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ partition_name | subpartition_name | high_value ------------------+-------------------+--------------------- SECOND_HALF_2012 | ASIA | 'INDIA', 'PAKISTAN' @@ -44,15 +45,16 @@ edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTI This command adds a subpartition named `east_asia` to the `second_half_2012` partition: -```text +```sql ALTER TABLE sales MODIFY PARTITION second_half_2012 ADD SUBPARTITION east_asia VALUES ('CHINA'); ``` After the command is invoked, the table includes a subpartition named `east_asia`: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ partition_name | subpartition_name | high_value ------------------+-------------------+--------------------- SECOND_HALF_2012 | ASIA | 'INDIA', 'PAKISTAN' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/index.mdx index 6a657ea57c2..9d1ce89f1d6 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/03_alter_table_add_subpartition/index.mdx @@ -11,7 +11,7 @@ legacyRedirectsGenerated: The `ALTER TABLE… ADD SUBPARTITION` command adds a subpartition to an existing subpartitioned partition. The syntax is: -```text +```sql ALTER TABLE MODIFY PARTITION ADD SUBPARTITION ; diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/01_example_splitting_a_list_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/01_example_splitting_a_list_partition.mdx index da972abd6b3..49e943e6995 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/01_example_splitting_a_list_partition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/01_example_splitting_a_list_partition.mdx @@ -6,7 +6,7 @@ title: "Example: Splitting a LIST partition" This example divides one of the partitions in the list-partitioned `sales` table into two new partitions and redistributes the contents of the partition between them. The `sales` table is created with the statement: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -25,7 +25,7 @@ PARTITION BY LIST(country) The table definition creates three partitions: `europe`, `asia`, and `americas`. This command adds rows to each partition: -```text +```sql INSERT INTO sales VALUES (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'), (20, '3788a', 'INDIA', '01-Mar-2012', '75000'), @@ -48,8 +48,9 @@ INSERT INTO sales VALUES The rows are distributed among the partitions: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount ----------------+---------+---------+----------+--------------------+-------- sales_americas | 40 | 9519b | US | 12-APR-12 00:00:00 | 145000 @@ -74,7 +75,7 @@ edb=# SELECT tableoid::regclass, * FROM sales; This command splits the `americas` partition into partitions named `us` and `canada`: -```text +```sql ALTER TABLE sales SPLIT PARTITION americas VALUES ('US') INTO (PARTITION us, PARTITION canada); @@ -82,8 +83,9 @@ ALTER TABLE sales SPLIT PARTITION americas A `SELECT` statement confirms that the rows were redistributed: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount --------------+---------+---------+----------+--------------------+-------- sales_canada | 30 | 7588b | CANADA | 14-DEC-12 00:00:00 | 50000 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/02_example_splitting_a_range_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/02_example_splitting_a_range_partition.mdx index 8b909155148..89ab8e79e0b 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/02_example_splitting_a_range_partition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/02_example_splitting_a_range_partition.mdx @@ -6,7 +6,7 @@ title: "Example: Splitting a RANGE partition" This example divides the `q4_2012` partition of the range-partitioned `sales` table into two partitions and redistributes the partition's contents. Use this command to create the `sales` table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -30,7 +30,7 @@ PARTITION BY RANGE(date) The table definition creates four partitions: `q1_2012`, `q2_2012`, `q3_2012`, and `q4_2012`). This command adds rows to each partition: -```text +```sql INSERT INTO sales VALUES (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'), (20, '3788a', 'INDIA', '01-Mar-2012', '75000'), @@ -53,8 +53,9 @@ INSERT INTO sales VALUES A `SELECT` statement confirms that the rows are distributed among the partitions: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount ---------------+---------+---------+----------+--------------------+-------- sales_q1_2012 | 10 | 4519b | FRANCE | 17-JAN-12 00:00:00 | 45000 @@ -79,7 +80,7 @@ edb=# SELECT tableoid::regclass, * FROM sales; This command splits the `q4_2012` partition into two partitions named `q4_2012_p1` and `q4_2012_p2`: -```text +```sql ALTER TABLE sales SPLIT PARTITION q4_2012 AT ('15-Nov-2012') INTO @@ -91,8 +92,9 @@ ALTER TABLE sales SPLIT PARTITION q4_2012 A `SELECT` statement confirms that the rows were redistributed across the new partitions: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date |amount -----------------+---------+---------+----------+--------------------+------ sales_q1_2012 | 10 | 4519b | FRANCE | 17-JAN-12 00:00:00 | 45000 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/03_example_splitting_a_range_list_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/03_example_splitting_a_range_list_partition.mdx index 6117aa50faf..3fd40205789 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/03_example_splitting_a_range_list_partition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/03_example_splitting_a_range_list_partition.mdx @@ -6,7 +6,7 @@ title: "Example: Splitting a RANGE/LIST partition" This example divides one of the partitions in the range-partitioned `sales` table into new partitions. This approach maintains the partitioning of the original table in the newly created partitions and redistributes the contents of the partition between them. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -29,9 +29,10 @@ PARTITION BY RANGE(date) The `sales` table contains partition `q1_2012` and the three subpartitions `europe`, `americas`, and `asia`: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name | high_value ------------+----------------+-------------------+--------------------- SALES | Q1_2012 | EUROPE | 'FRANCE', 'ITALY' @@ -42,7 +43,7 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command splits the `q1_2012` partition into partitions named `q1_2012_p1` and `q1_2012_p2`: -```text +```sql ALTER TABLE sales SPLIT PARTITION q1_2012 AT ('01-Mar-2012') INTO @@ -54,9 +55,10 @@ ALTER TABLE sales SPLIT PARTITION q1_2012 A `SELECT` statement confirms that the same number of subpartitions is created in the newly created partitions `q1_2012_p1` and `q1_2012_p2` with system-generated names: -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2,3; +__OUTPUT__ table_name | partition_name | subpartition_name | high_value ------------+----------------+-------------------+--------------------- SALES | Q1_2012_P1 | SYS0105 | 'US', 'CANADA' @@ -74,7 +76,7 @@ This example divides one of the partitions in the list-partitioned `sales` table This statement creates the `sales` table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -93,9 +95,10 @@ PARTITION BY LIST(country) SUBPARTITION BY HASH (part_no) SUBPARTITIONS 2 The table definition creates the three partitions `europe`, `asia`, and `americas`. Each contains two subpartitions. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | AMERICAS | SYS0105 @@ -109,16 +112,17 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command splits the `americas` partition into partitions named `partition_us` and `partition_canada`: -```text +```sql ALTER TABLE sales SPLIT PARTITION americas VALUES ('US') INTO (PARTITION partition_us SUBPARTITIONS 5, PARTITION partition_canada); ``` A `SELECT` statement confirms that the `americas` partition is split into `partition_us` and `partition_canada`. The `partition_us` contains five subpartitions. `partition_canada` contains two default subpartitions with system-generated names. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2,3; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+------------------+------------------- SALES | ASIA | SYS0103 @@ -141,7 +145,7 @@ This example divides the `europe` partition of the list-partitioned `sales` tabl Use the following command to create the `sales` table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -160,9 +164,10 @@ PARTITION BY LIST(country) SUBPARTITION BY HASH (part_no) SUBPARTITIONS 4 The `sales` table contains the partitions `europe`, `asia`, and `americas`. Each contains four subpartitions with system-generated names. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | AMERICAS | SYS0112 @@ -182,16 +187,17 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command splits the `europe` partition into the partitions `france` and `italy`: -```text +```sql ALTER TABLE sales SPLIT PARTITION europe VALUES ('FRANCE') INTO (PARTITION france SUBPARTITIONS 10 STORE IN (ts1), PARTITION italy); ``` A `SELECT` statement confirms that the `europe` partition is split into two partitions. The partition `france` contains 10 subpartitions that are stored in the tablespace `ts1`. Partition `italy` contains four subpartitions as in the original partition `europe`. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name, tablespace_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2,3; +__OUTPUT__ table_name | partition_name | subpartition_name | tablespace_name ------------+----------------+-------------------+----------------- SALES | AMERICAS | SYS0109 | diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/index.mdx index 9814882b8d5..397c734c8e6 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/04_alter_table_split_partition/index.mdx @@ -13,7 +13,7 @@ Use the `ALTER TABLE… SPLIT PARTITION` command to divide a single partition in The first form splits a `RANGE` partition into two partitions: -```text +```sql ALTER TABLE SPLIT PARTITION AT () INTO @@ -29,7 +29,7 @@ ALTER TABLE SPLIT PARTITION The second form splits a `LIST` partition into two partitions: -```text +```sql ALTER TABLE SPLIT PARTITION VALUES ([, ]...) INTO diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/01_example_splitting_a_list_subpartition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/01_example_splitting_a_list_subpartition.mdx index 9b17c3679c5..4c73f9fdf05 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/01_example_splitting_a_list_subpartition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/01_example_splitting_a_list_subpartition.mdx @@ -8,7 +8,7 @@ This example splits a list subpartition, redistributing the subpartition's conte The sample table `sales` was created with the command: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -35,8 +35,9 @@ PARTITION BY RANGE(date) The `sales` table has partitions named `first_half_2012` and `second_half_2012`. Each partition has two range-defined subpartitions that distribute the partition's contents into subpartitions based on the value of the `country` column. -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ partition_name | subpartition_name | high_value ------------------+-------------------+------------------- SECOND_HALF_2012 | P2_AMERICAS | 'US', 'CANADA' @@ -48,7 +49,7 @@ edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTI This command adds rows to each subpartition: -```text +```sql INSERT INTO sales VALUES (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'), (40, '9519b', 'US', '12-Apr-2012', '145000'), @@ -66,8 +67,9 @@ INSERT INTO sales VALUES A `SELECT` statement confirms that the rows are correctly distributed among the subpartitions: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount -----------------+---------+---------+---------+--------------------+-------- sales_p1_americas| 40 | 9519b | US | 12-APR-12 00:00:00 | 145000 @@ -87,7 +89,7 @@ sales_p2_europe | 10 | 9519b | FRANCE | 18-AUG-12 00:00:00 | 650000 This command splits the `p2_americas` subpartition into two new subpartitions and redistributes the contents. -```text +```sql ALTER TABLE sales SPLIT SUBPARTITION p2_americas VALUES ('US') INTO @@ -99,8 +101,9 @@ ALTER TABLE sales SPLIT SUBPARTITION p2_americas After the command is invoked, the `p2_americas` subpartition is deleted. In its place, the server creates the subpartitions `p2_us` and `p2_canada`: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ partition_name | subpartition_name | high_value ------------------+-------------------+------------------- FIRST_HALF_2012 | P1_EUROPE | 'ITALY', 'FRANCE' @@ -113,8 +116,9 @@ edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTI Querying the `sales` table shows that the content of the `p2_americas` subpartition was redistributed: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date |amount ------------------+---------+---------+---------+--------------------+------ sales_p1_americas| 40 | 9519b | US | 12-APR-12 00:00:00 |145000 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/02_example_splitting_a_range_subpartition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/02_example_splitting_a_range_subpartition.mdx index ae8bf1f714c..36a38156d2f 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/02_example_splitting_a_range_subpartition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/02_example_splitting_a_range_subpartition.mdx @@ -8,7 +8,7 @@ This example splits a range subpartition, redistributing the subpartition's cont The sample table `sales` was created with the command: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -46,8 +46,9 @@ PARTITION BY LIST(country) The `sales` table has the partitions `europe`, `asia`, and `americas`. Each partition has two range-defined subpartitions that sort the partitions contents into subpartitions by the value of the `date` column: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ partition_name | subpartition_name | high_value ----------------+-------------------+---------------------- EUROPE | EUROPE_2011 | '01-JAN-12 00:00:00' @@ -61,7 +62,7 @@ edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTI This command adds rows to each subpartition: -```text +```sql INSERT INTO sales VALUES (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'), (20, '3788a', 'INDIA', '01-Mar-2012', '75000'), @@ -84,8 +85,9 @@ INSERT INTO sales VALUES A `SELECT` statement confirms that the rows are distributed among the subpartitions: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid |dept_no|part_no| country | date | amount --------------------+-------+-------+---------+--------------------+--------- sales_americas_2012| 40 | 9519b | US | 12-APR-12 00:00:00 | 145000 @@ -110,7 +112,7 @@ edb=# SELECT tableoid::regclass, * FROM sales; This command splits the `americas_2012` subpartition into two new subpartitions and redistributes the contents: -```text +```sql ALTER TABLE sales SPLIT SUBPARTITION americas_2012 AT('2012-Jun-01') @@ -123,8 +125,9 @@ ALTER TABLE sales After the command is invoked, the `americas_2012` subpartition is deleted. In its place, the server creates the subpartitions `americas_p1_2012` and `americas_p2_2012`: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ partition_name | subpartition_name | high_value ----------------+-------------------+---------------------- EUROPE | EUROPE_2011 | '01-JAN-12 00:00:00' @@ -139,8 +142,9 @@ edb=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTI Querying the `sales` table shows that the subpartition's contents are redistributed: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid |dept_no|part_no|country | date | amount -----------------------+-------+-------+---------+-------------------+------- sales_americas_p1_2012| 40 | 9519b | US | 12-APR-12 00:00:00|145000 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/index.mdx index 77ac6237153..4c18c25d71c 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/05_alter_table_split_subpartition/index.mdx @@ -13,7 +13,7 @@ Use the `ALTER TABLE… SPLIT SUBPARTITION` command to divide a single subpartit The first variation splits a range subpartition into two subpartitions: -```text +```sql ALTER TABLE SPLIT SUBPARTITION AT (range_part_value) INTO @@ -27,7 +27,7 @@ ALTER TABLE SPLIT SUBPARTITION The second variation splits a list subpartition into two subpartitions: -```text +```sql ALTER TABLE SPLIT SUBPARTITION VALUES ([, ]...) INTO diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/01_example_exchanging_a_table_for_a_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/01_example_exchanging_a_table_for_a_partition.mdx index 58ac23c5e2f..edd24eef0cf 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/01_example_exchanging_a_table_for_a_partition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/01_example_exchanging_a_table_for_a_partition.mdx @@ -6,7 +6,7 @@ title: "Example: Exchanging a table for a partition" This example swaps a table for the partition `americas` of the `sales` table. You can create the `sales` table with this command: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -25,7 +25,7 @@ PARTITION BY LIST(country) Use this command to add sample data to the `sales` table: -```text +```sql INSERT INTO sales VALUES (40, '9519b', 'US', '12-Apr-2012', '145000'), (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'), @@ -41,8 +41,9 @@ INSERT INTO sales VALUES Querying the `sales` table shows that only one row resides in the `americas` partition: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount ----------------+---------+---------+----------+--------------------+-------- sales_americas | 40 | 9519b | US | 12-APR-12 00:00:00 | 145000 @@ -60,7 +61,7 @@ edb=# SELECT tableoid::regclass, * FROM sales; This command creates a table `n_america` that matches the definition of the `sales` table: -```text +```sql CREATE TABLE n_america ( dept_no number, @@ -73,7 +74,7 @@ CREATE TABLE n_america This command adds data to the `n_america` table. The data conforms to the partitioning rules of the `americas` partition. -```text +```sql INSERT INTO n_america VALUES (40, '9519b', 'US', '12-Apr-2012', '145000'), (40, '4577b', 'US', '11-Nov-2012', '25000'), @@ -87,7 +88,7 @@ INSERT INTO n_america VALUES This command swaps the table into the partitioned table: -```text +```sql ALTER TABLE sales EXCHANGE PARTITION americas WITH TABLE n_america; @@ -95,8 +96,9 @@ ALTER TABLE sales Querying the `sales` table shows that the contents of the `n_america` table were exchanged for the contents of the `americas` partition: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount ----------------+---------+---------+----------+--------------------+-------- sales_americas | 40 | 9519b | US | 12-APR-12 00:00:00 | 145000 @@ -121,8 +123,9 @@ edb=# SELECT tableoid::regclass, * FROM sales; Querying the `n_america` table shows that the row that was previously stored in the `americas` partition was moved to the `n_america` table: -```text +```sql edb=# SELECT tableoid::regclass, * FROM n_america; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount -----------+---------+---------+---------+--------------------+-------- n_america | 40 | 9519b | US | 12-APR-12 00:00:00 | 145000 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/index.mdx index c4cf5d4cb8b..ee833aa4fc2 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/06_alter_table_exchange_partition/index.mdx @@ -13,7 +13,7 @@ The `ALTER TABLE…EXCHANGE PARTITION` command swaps an existing table with a pa The command syntax is available in two forms. The first form swaps a table for a partition: -```text +```sql ALTER TABLE EXCHANGE PARTITION WITH TABLE @@ -23,7 +23,7 @@ ALTER TABLE The second form swaps a table for a subpartition: -```text +```sql ALTER TABLE EXCHANGE SUBPARTITION WITH TABLE diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/01_example_moving_a_partition_to_a_different_tablespace.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/01_example_moving_a_partition_to_a_different_tablespace.mdx index c374fbdf51b..929654d5b7d 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/01_example_moving_a_partition_to_a_different_tablespace.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/01_example_moving_a_partition_to_a_different_tablespace.mdx @@ -8,7 +8,7 @@ This following example moves a partition of the `sales` table from one tablespac Create the `sales` table with the command: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -29,8 +29,9 @@ PARTITION BY RANGE(date) Querying the `ALL_TAB_PARTITIONS` view confirms that the partitions reside on the expected servers and tablespaces: -```text +```sql edb=# SELECT partition_name, tablespace_name FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | tablespace_name ----------------+----------------- Q1_2012 | @@ -43,14 +44,15 @@ edb=# SELECT partition_name, tablespace_name FROM ALL_TAB_PARTITIONS; After preparing the target tablespace, invoke the `ALTER TABLE… MOVE PARTITION` command to move the `q1_2013` partition from a tablespace named `ts_2` to a tablespace named `ts_3`: -```text +```sql ALTER TABLE sales MOVE PARTITION q1_2013 TABLESPACE ts_3; ``` Querying the `ALL_TAB_PARTITIONS` view shows that the move was successful: -```text +```sql edb=# SELECT partition_name, tablespace_name FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | tablespace_name ----------------+----------------- Q1_2012 | diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/index.mdx index 77b72bbec98..dd10fa3a3d6 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/07_alter_table_move_partition/index.mdx @@ -13,7 +13,7 @@ Use the `ALTER TABLE… MOVE PARTITION` command to move a partition to a differe The first form moves a partition to a new tablespace: -```text +```sql ALTER TABLE MOVE PARTITION TABLESPACE ; @@ -21,7 +21,7 @@ ALTER TABLE The second form moves a subpartition to a new tablespace: -```text +```sql ALTER TABLE MOVE SUBPARTITION TABLESPACE ; diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/01_example_renaming_a_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/01_example_renaming_a_partition.mdx index 43ca1aa183f..6a4480a4440 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/01_example_renaming_a_partition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/01_example_renaming_a_partition.mdx @@ -6,7 +6,7 @@ title: "Example: Renaming a partition" This command creates a list-partitioned table named `sales`: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -25,8 +25,9 @@ PARTITION BY LIST(country) Query the `ALL_TAB_PARTITIONS` view to display the partition names: -```text +```sql edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+--------------------- EUROPE | 'FRANCE', 'ITALY' @@ -37,15 +38,16 @@ edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; This command renames the `americas` partition to `n_america`: -```text +```sql ALTER TABLE sales RENAME PARTITION americas TO n_america; ``` Query the `ALL_TAB_PARTITIONS` view to show that the partition was successfully renamed: -```text +```sql edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+--------------------- EUROPE | 'FRANCE', 'ITALY' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/index.mdx index c382f86f55f..6e180ad0678 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/08_alter_table_rename_partition/index.mdx @@ -13,7 +13,7 @@ Use the `ALTER TABLE… RENAME PARTITION` command to rename a table partition. T The first form renames a partition: -```text +```sql ALTER TABLE RENAME PARTITION TO ; @@ -21,7 +21,7 @@ ALTER TABLE The second form renames a subpartition: -```text +```sql ALTER TABLE RENAME SUBPARTITION TO ; diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/01_example_setting_an_interval_range_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/01_example_setting_an_interval_range_partition.mdx index 55060064204..e37cfba27c6 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/01_example_setting_an_interval_range_partition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/01_example_setting_an_interval_range_partition.mdx @@ -8,7 +8,7 @@ This example sets an interval range partition of the `sales` table. It converts This command creates the `sales` table: -```text +```sql CREATE TABLE sales ( prod_id int, @@ -26,14 +26,15 @@ PARTITION BY RANGE(sold_month) Set the interval range partitioning from the `sales` table: -```text +```sql ALTER TABLE sales SET INTERVAL (NUMTOYMINTERVAL(1, 'MONTH')); ``` Query the `ALL_TAB_PARTITIONS` view before a database creates an interval range partition: -```text +```sql edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+---------------------- P1 | '15-JAN-19 00:00:00' @@ -43,15 +44,16 @@ edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; Add data to the `sales` table that exceeds the high value of a range partition: -```text +```sql edb=# INSERT INTO sales VALUES (1,100,'05-APR-2019'); INSERT 0 1 ``` Query the `ALL_TAB_PARTITIONS` view again after the `INSERT` statement. The interval range partition is successfully created and data is inserted. A system-generated name of the interval range partition is created that varies for each session. -```text +```sql edb=# SELECT partition_name, high_value from ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+---------------------- P1 | '15-JAN-19 00:00:00' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/index.mdx index 22da9e6e8a5..c3e48e53407 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/09_alter_table_set_interval/index.mdx @@ -6,13 +6,13 @@ title: "ALTER TABLE...SET INTERVAL" Use the `ALTER TABLE… SET INTERVAL` command to convert an existing range-partitioned table to an interval range-partitioned table. The database creates a partition of a specified range or interval for the partitioned table when you set `INTERVAL`. The syntax is: -```text +```sql ALTER TABLE SET INTERVAL ( | ); ``` To disable an interval range partitioned table and convert it to a range-partitioned table, the syntax is: -```text +```sql ALTER TABLE SET INTERVAL (); ``` diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/01_example_setting_an_automatic_list_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/01_example_setting_an_automatic_list_partition.mdx index cb3a931ecb8..9f491c3b3bb 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/01_example_setting_an_automatic_list_partition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/01_example_setting_an_automatic_list_partition.mdx @@ -8,7 +8,7 @@ This example modifies a table `sales` to use automatic list partitioning instead This command creates a `sales` table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -26,14 +26,15 @@ PARTITION BY LIST(sales_state) Implement automatic list partitioning on the `sales` table: -```text +```sql ALTER TABLE sales SET AUTOMATIC; ``` Query the `ALL_TAB_PARTITIONS` view to show that an existing partition is successfully created: -```text +```sql edb=# SELECT table_name, partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ table_name | partition_name | high_value ------------+----------------+------------ SALES | P_KAN | 'KANSAS' @@ -43,15 +44,16 @@ edb=# SELECT table_name, partition_name, high_value FROM ALL_TAB_PARTITIONS; Insert data into the `sales` table to create a partition and add the value: -```text +```sql edb=# INSERT INTO sales VALUES (1, 'VIR', 'VIRGINIA'); INSERT 0 1 ``` Query the `ALL_TAB_PARTITIONS` view again after the insert. The automatic list partition is successfully created and data is inserted. A system-generated name of the partition is created that varies for each session. -```text +```sql edb=# SELECT table_name, partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ table_name | partition_name | high_value ------------+----------------+------------ SALES | P_KAN | 'KANSAS' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/index.mdx index 67fd1d2f3e6..79c472b0917 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/10_alter_table_set_partitioning_automatic/index.mdx @@ -6,13 +6,13 @@ title: "ALTER TABLE...SET [ PARTITIONING ] AUTOMATIC" Use the `ALTER TABLE… SET [ PARTITIONING ] AUTOMATIC` command to convert an existing list-partitioned table to automatic list partitioning. The database automatically creates a partition based on a new value inserted into a table when `AUTOMATIC` is set. The syntax is: -```text +```sql ALTER TABLE SET [ PARTITIONING ] AUTOMATIC; ``` To disable `AUTOMATIC LIST PARTITIONING` and convert to regular `LIST` partition, the syntax is: -```text +```sql ALTER TABLE SET [ PARTITIONING ] MANUAL; ``` diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/01_example_setting_a_subpartition_template.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/01_example_setting_a_subpartition_template.mdx index 0e749367d45..869a757d154 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/01_example_setting_a_subpartition_template.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/01_example_setting_a_subpartition_template.mdx @@ -8,7 +8,7 @@ This example creates a table `sales` that's range partitioned by `date` and hash This command creates the `sales` table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -32,9 +32,10 @@ PARTITION BY RANGE (date) SUBPARTITION BY HASH (country) SUBPARTITIONS 2 The table definition creates four partitions: `q1_2012`, `q2_2012`, `q3_2012`, and `q4_2012`. Each partition consists of two subpartitions with system-generated names. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | Q1_2012 | SYS0101 @@ -50,22 +51,23 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; Set the subpartition template on the `sales` table: -```text +```sql ALTER TABLE sales SET SUBPARTITION TEMPLATE 8; ``` The `sales` table is modified, with the subpartition template set to eight. If you try to add a partition `q1_2013`, a new partition is created and consists of eight subpartitions. -```text +```sql ALTER TABLE sales ADD PARTITION q1_2013 VALUES LESS THAN ('2013-Apr-01'); ``` Query the `ALL_TAB_PARTITIONS` view. The `q1_2013` partition is successfully added. It has eight subpartitions that have system-generated names. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' and partition_name = 'Q1_2013' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | Q1_2013 | SYS0113 @@ -83,7 +85,7 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' and partition_name = This example creates a table `sales` that's list-partitioned by country. It is subpartitioned using the list by the `date` column. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -107,9 +109,10 @@ PARTITION BY LIST (country) The `SELECT` statement shows partition `q1_2021` consisting of three subpartitions stored in tablespaces `ts1`, `ts2`, and `ts3`. -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+----------------------+----------------- Q1_2021 | Q1_2021_AMERICAS | '01-JUL-21 00:00:00' | TS3 @@ -120,15 +123,16 @@ DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command adds a partition named `q2_2021` to the `sales` table: -```text +```sql ALTER TABLE sales ADD PARTITION q2_2021 VALUES('US', 'CANADA'); ``` This command shows that the `sales` table includes the `q2_2021` partition: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+----------------------+----------------- Q1_2021 | Q1_2021_AMERICAS | '01-JUL-21 00:00:00' | TS3 @@ -144,7 +148,7 @@ DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates a table `sales` list-partitioned by country and subpartitioned using range partitioning by the `date` column: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -168,9 +172,10 @@ PARTITION BY LIST(country) The `sales` table creates a partition named `q1_2021` that includes three subpartitions stored in tablespaces `ts1`, `ts2`, and `ts3`. -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+----------------------+----------------- Q1_2021 | Q1_2021_AMERICAS | '01-JUL-21 00:00:00' | TS3 @@ -181,15 +186,16 @@ DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command adds a partition named `q2_2021` to the `sales` table: -```text +```sql ALTER TABLE sales ADD PARTITION q2_2021 VALUES('INDIA', 'PAKISTAN'); ``` This command shows that the `sales` table includes the `q2_2021` partition: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+----------------------+----------------- Q1_2021 | Q1_2021_AMERICAS | '01-JUL-21 00:00:00' | TS3 @@ -205,7 +211,7 @@ DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This example creates a list-partitioned table `sales` that's first partitioned by country and then hash-subpartitioned using the value of the `dept_no` column: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -229,9 +235,10 @@ PARTITION BY LIST(country) The `sales` table creates a `q1_2021` partition that includes three subpartitions stored in tablespaces `ts1`, `ts2`, and `ts3`: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+------------+----------------- Q1_2021 | Q1_2021_AMERICAS | | TS3 @@ -242,15 +249,16 @@ FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command adds a partition named `q2_2021` to the `sales` table: -```text +```sql ALTER TABLE sales ADD PARTITION q2_2021 VALUES('FRANCE', 'ITALY'); ``` This command shows that the `sales` table includes the `q2_2021` partition: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+------------+----------------- Q1_2021 | Q1_2021_AMERICAS | | TS3 @@ -268,7 +276,7 @@ This example creates a list-partitioned table `sales` that's list partitioned by This command creates the `sales` table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -287,9 +295,10 @@ PARTITION BY LIST (country) SUBPARTITION BY HASH (part_no) SUBPARTITIONS 3 The table contains three partitions: `americas`, `asia`, and `europe`. Each partition consists of three subpartitions with system-generated names. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | AMERICAS | SYS0109 @@ -306,22 +315,23 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command resets the subpartition template on the `sales` table: -```text +```sql ALTER TABLE sales SET SUBPARTITION TEMPLATE (); ``` The `sales` table is modified with the subpartition template reset to default `1`. Try to add a new partition `east_asia` using this command: -```text +```sql ALTER TABLE sales ADD PARTITION east_asia VALUES ('CHINA', 'KOREA'); ``` Query the `ALL_TAB_PARTITIONS` view. A new partition `east_asia` is created consisting of one subpartition with a system-generated name. -```text +```sql edb=# SELECT table_name, partition_name, subpartition_name FROM ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' and partition_name = 'EAST_ASIA' ORDER BY 1,2; +__OUTPUT__ table_name | partition_name | subpartition_name ------------+----------------+------------------- SALES | EAST_ASIA | SYS0113 @@ -330,7 +340,7 @@ ALL_TAB_SUBPARTITIONS WHERE table_name = 'SALES' and partition_name = This example creates a table `sales` list-partitioned by country and subpartitioned using range partitioning by the `date` column: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -354,9 +364,10 @@ PARTITION BY LIST(country) The `sales` table contains a partition named `q1_2021` that includes three subpartitions stored in tablespaces `ts1`, `ts2`, and `ts3`. -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+----------------------+----------------- Q1_2021 | Q1_2021_AMERICAS | '01-JUL-21 00:00:00' | TS3 @@ -367,15 +378,16 @@ FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command adds a partition named `q2_2021` to the `sales` table: -```text +```sql ALTER TABLE sales ADD PARTITION q2_2021 VALUES('INDIA', 'PAKISTAN'); ``` This command shows that the `sales` table includes the `q2_2021` partition: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+----------------------+----------------- Q1_2021 | Q1_2021_AMERICAS | '01-JUL-21 00:00:00' | TS3 @@ -389,7 +401,7 @@ DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; Use the `ALTER TABLE... SET SUBPARTITION TEMPLATE` command to specify a new subpartition template: -```text +```sql ALTER TABLE sales SET SUBPARTITION TEMPLATE ( SUBPARTITION europe VALUES LESS THAN('2021-Jan-01'), @@ -399,15 +411,16 @@ ALTER TABLE sales SET SUBPARTITION TEMPLATE This command adds a partition named `q3_2021` to the `sales` table: -```text +```sql ALTER TABLE sales ADD PARTITION q3_2021 VALUES('US', 'CANADA'); ``` This command shows that the `sales` table includes the `q3_2021` partition: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+----------------------+----------------- Q1_2021 | Q1_2021_AMERICAS | '01-JUL-21 00:00:00' | TS3 @@ -423,21 +436,22 @@ DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; This command resets or drops the subpartition template on the `sales` table: -```text +```sql ALTER TABLE sales SET SUBPARTITION TEMPLATE (); ``` This command adds a partition named `q4_2021` to the `sales` table: -```text +```sql ALTER TABLE sales ADD PARTITION q4_2021 VALUES('FRANCE', 'ITALY'); ``` The `SELECT` statement shows partition `q4_2021` consists of a subpartition with a system-generated name: -```text +```sql edb=# SELECT partition_name, subpartition_name, high_value, tablespace_name FROM DBA_TAB_SUBPARTITIONS WHERE table_name = 'SALES' ORDER BY 1,2; +__OUTPUT__ partition_name | subpartition_name | high_value | tablespace_name ----------------+-------------------+----------------------+----------------- Q1_2021 | Q1_2021_AMERICAS | '01-JUL-21 00:00:00' | TS3 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/index.mdx index d1b96ded112..2bf2a12fd7e 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/index.mdx @@ -8,20 +8,20 @@ Use the `ALTER TABLE… SET SUBPARTITION TEMPLATE` command to update the subpart To set the subpartition number for `HASH` subpartitions only: -```text +```sql ALTER TABLE SET SUBPARTITION TEMPLATE ; ``` To set a subpartition description for an existing partitioned table: -```text +```sql ALTER TABLE [SET SUBPARTITION TEMPLATE ()] ``` To reset the subpartitions number to default using the subpartition template: -```text +```sql ALTER TABLE SET SUBPARTITION TEMPLATE (); ``` diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/12_drop_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/12_drop_table.mdx index 6306b7a9cb6..3c9f7a7442c 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/12_drop_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/12_drop_table.mdx @@ -6,7 +6,7 @@ title: "DROP TABLE" Use the PostgreSQL `DROP TABLE` command to remove a partitioned table definition, its partitions and subpartitions, and the table contents. The syntax is: -```text +```sql DROP TABLE ``` @@ -26,13 +26,13 @@ To use the `DROP TABLE` command, you must be the owner of the partitioning root, To delete a table, connect to the controller node (the host of the partitioning root), and invoke the `DROP TABLE` command. For example, delete the `sales` table: -```text +```sql DROP TABLE sales; ``` The server confirms that the table was dropped: -```text +```sql edb=# drop table sales; DROP TABLE edb=# diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/01_example_deleting_a_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/01_example_deleting_a_partition.mdx index 63d235b4aa2..dd3292afd3c 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/01_example_deleting_a_partition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/01_example_deleting_a_partition.mdx @@ -8,7 +8,7 @@ This example deletes a partition of the `sales` table. Create the `sales` table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -27,8 +27,9 @@ PARTITION BY LIST(country) Query the `ALL_TAB_PARTITIONS` view to display the partition names: -```text +```sql edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+--------------------- EUROPE | 'FRANCE', 'ITALY' @@ -39,14 +40,15 @@ edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; Delete the `americas` partition from the `sales` table: -```text +```sql ALTER TABLE sales DROP PARTITION americas; ``` Query the `ALL_TAB_PARTITIONS` view to show that the partition was successfully deleted: -```text +```sql edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+--------------------- EUROPE | 'FRANCE', 'ITALY' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/index.mdx index 7a2dba0d9cb..f80f2a93f90 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/13_alter_table_drop_partition/index.mdx @@ -11,7 +11,7 @@ legacyRedirectsGenerated: Use the `ALTER TABLE… DROP PARTITION` command to delete a partition definition and the data stored in that partition. The syntax is: -```text +```sql ALTER TABLE DROP PARTITION ; ``` diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/01_example_deleting_a_subpartition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/01_example_deleting_a_subpartition.mdx index 18eaf87e58c..0ceda6ac3ea 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/01_example_deleting_a_subpartition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/01_example_deleting_a_subpartition.mdx @@ -8,7 +8,7 @@ This example deletes a subpartition of the `sales` table. Create the `sales` table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -32,8 +32,9 @@ PARTITION BY RANGE(date) Query the `ALL_TAB_SUBPARTITIONS` view to display the subpartition names: -```text +```sql edb=# SELECT subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ subpartition_name | high_value -------------------+--------------------- EUROPE | 'ITALY', 'FRANCE' @@ -45,14 +46,15 @@ edb=# SELECT subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; Delete the `americas` subpartition from the `sales` table: -```text +```sql ALTER TABLE sales DROP SUBPARTITION americas; ``` Query the `ALL_TAB_SUBPARTITIONS` view to show that the subpartition was successfully deleted: -```text +```sql edb=# SELECT subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ subpartition_name | high_value -------------------+--------------------- EUROPE | 'ITALY', 'FRANCE' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/index.mdx index 0e49909d00b..de9861500d1 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/14_alter_table_drop_subpartition/index.mdx @@ -11,7 +11,7 @@ legacyRedirectsGenerated: Use the `ALTER TABLE… DROP SUBPARTITION` command to drop a subpartition definition and the data stored in that subpartition. The syntax is: -```text +```sql ALTER TABLE DROP SUBPARTITION ; ``` diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/01_example_emptying_a_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/01_example_emptying_a_table.mdx index 92eab89008d..54a63ea8abd 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/01_example_emptying_a_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/01_example_emptying_a_table.mdx @@ -8,7 +8,7 @@ This example removes the data from the `sales` table. Create the `sales` table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -27,7 +27,7 @@ PARTITION BY LIST(country) Populate the `sales` table: -```text +```sql INSERT INTO sales VALUES (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'), (20, '3788a', 'INDIA', '01-Mar-2012', '75000'), @@ -50,8 +50,9 @@ INSERT INTO sales VALUES Query the `sales` table to show that the partitions have data: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount ----------------+---------+---------+----------+--------------------+-------- sales_americas | 40 | 9519b | US | 12-APR-12 00:00:00 | 145000 @@ -76,14 +77,15 @@ edb=# SELECT tableoid::regclass, * FROM sales; Delete the contents of the `sales` table: -```text +```sql TRUNCATE TABLE sales; ``` Query the `sales` table to show that the data was removed but the structure is intact: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount ----------+---------+---------+---------+------+-------- (0 rows) diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/index.mdx index 26d88f7768f..aed83aee23f 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/15_truncate_table/index.mdx @@ -11,7 +11,7 @@ legacyRedirectsGenerated: Use the `TRUNCATE TABLE` command to remove the contents of a table while preserving the table definition. Truncating a table also truncates the table's partitions or subpartitions. The syntax is: -```text +```sql TRUNCATE TABLE ``` diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/01_example_emptying_a_partition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/01_example_emptying_a_partition.mdx index 3cf090fc321..156f6095ae1 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/01_example_emptying_a_partition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/01_example_emptying_a_partition.mdx @@ -8,7 +8,7 @@ This example removes the data from a partition of the `sales` table. Create the `sales` table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -27,7 +27,7 @@ PARTITION BY LIST(country) Populate the `sales` table: -```text +```sql INSERT INTO sales VALUES (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'), (20, '3788a', 'INDIA', '01-Mar-2012', '75000'), @@ -50,8 +50,9 @@ INSERT INTO sales VALUES Query the `sales` table to show that the partitions are populated with data: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount ----------------+---------+---------+----------+--------------------+-------- sales_americas | 40 | 9519b | US | 12-APR-12 00:00:00 | 145000 @@ -76,14 +77,15 @@ edb=# SELECT tableoid::regclass, * FROM sales; Delete the contents of the `americas` partition: -```text +```sql ALTER TABLE sales TRUNCATE PARTITION americas; ``` Query the `sales` table to show that the contents of the `americas` partition were removed: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount --------------+---------+---------+----------+--------------------+-------- sales_europe | 10 | 4519b | FRANCE | 17-JAN-12 00:00:00 | 45000 @@ -100,8 +102,9 @@ edb=# SELECT tableoid::regclass, * FROM sales; The rows were removed, but the structure of the `americas` partition is intact: -```text +```sql edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+--------------------- EUROPE | 'FRANCE', 'ITALY' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/index.mdx index 66ebc7fa58a..da2ca87e61d 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/16_alter_table_truncate_partition/index.mdx @@ -11,7 +11,7 @@ legacyRedirectsGenerated: Use the `ALTER TABLE… TRUNCATE PARTITION` command to remove the data from the specified partition and leave the partition structure intact. The syntax is: -```text +```sql ALTER TABLE TRUNCATE PARTITION [{DROP|REUSE} STORAGE] ``` diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/01_example_emptying_a_subpartition.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/01_example_emptying_a_subpartition.mdx index 754baf6cad0..cad13ad5ee0 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/01_example_emptying_a_subpartition.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/01_example_emptying_a_subpartition.mdx @@ -8,7 +8,7 @@ This example removes the data from a subpartition of the `sales` table. Create the `sales` table: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -42,7 +42,7 @@ PARTITION BY RANGE(date) SUBPARTITION BY LIST (country) Populate the `sales` table: -```text +```sql INSERT INTO sales VALUES (10, '4519b', 'FRANCE', '17-Jan-2011', '45000'), (20, '3788a', 'INDIA', '01-Mar-2012', '75000'), @@ -60,8 +60,9 @@ INSERT INTO sales VALUES Query the `sales` table to show that the rows were distributed among the subpartitions: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no| part_no | country| date | amount -------------------+--------+---------+--------+--------------------+-------- sales_americas_2011| 30| 7588b | CANADA | 14-DEC-11 00:00:00 | 50000 @@ -81,14 +82,15 @@ sales_asia_2012 | 20| 4519b | INDIA | 02-DEC-12 00:00:00 | 5090 Delete the contents of the `2012_americas` partition: -```text +```sql ALTER TABLE sales TRUNCATE SUBPARTITION "americas_2012"; ``` Query the `sales` table to show that the contents of the `americas_2012` partition were removed: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no| part_no | country | date |amount -------------------+--------+---------+----------+--------------------+------ sales_americas_2011| 30| 7588b | CANADA | 14-DEC-11 00:00:00 |50000 @@ -104,8 +106,9 @@ sales_asia_2012 | 20| 4519b | INDIA | 02-DEC-12 00:00:00 | 5090 The rows were removed, but the structure of the `2012_americas` partition is intact: -```text +```sql edb=# SELECT subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ subpartition_name | high_value -------------------+--------------------- EUROPE_2011 | 'ITALY', 'FRANCE' diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/index.mdx index 58a4c3ee7e9..28a790f10fa 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/17_alter_table_truncate_subpartition/index.mdx @@ -11,7 +11,7 @@ legacyRedirectsGenerated: Use the `ALTER TABLE… TRUNCATE SUBPARTITION` command to remove all of the data from the specified subpartition and leave the subpartition structure intact. The syntax is: -```text +```sql ALTER TABLE TRUNCATE SUBPARTITION [{DROP|REUSE} STORAGE] diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/18_accessing_partition_table/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/18_accessing_partition_table/index.mdx index 8ae918e446f..0530e3197c5 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/18_accessing_partition_table/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/18_accessing_partition_table/index.mdx @@ -6,7 +6,7 @@ title: "Accessing a PARTITION or SUBPARTITION" For a partitioned table, you can access the partition or subpartition using `PARTITION part_name` or `SUBPARTITION subpart_name`. This example creates a partitioned table `sales` that's range partitioned by `date` and subpartitioned using list partitioning by the `country` column: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -37,8 +37,9 @@ PARTITION BY RANGE(date) The `SELECT` statement shows two partitions. Each partition has three subpartitions. -```text +```sql edb=# SELECT subpartition_name, high_value, partition_name FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ subpartition_name | high_value | partition_name -------------------+---------------------+---------------- Q1_EUROPE | 'FRANCE', 'ITALY' | Q1_2020 @@ -52,13 +53,14 @@ edb=# SELECT subpartition_name, high_value, partition_name FROM ALL_TAB_SUBPARTI This `INSERT` statement inserts rows into the `sales` table using specific `PARTITION part_name` or `SUBPARTITION subpart_name` values: -```text +```sql INSERT INTO sales PARTITION (q1_2020) VALUES (10, 'q1_2020', 'FRANCE', '2020-Feb-01', '500000'); INSERT INTO sales PARTITION (q2_2020) VALUES (10, 'q2_2020', 'ITALY', '2020-Apr-01', '550000'); INSERT INTO sales SUBPARTITION (q1_europe) VALUES (10, 'q1_europe', 'FRANCE', '2020-Feb-01', '600000'); INSERT INTO sales SUBPARTITION (q2_asia) VALUES (10, 'q2_asia', 'INDIA', '2020-Apr-01', '650000'); edb=# SELECT tableoid::regclass, * FROM sales ORDER BY date; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount -----------------+---------+-----------+---------+--------------------+-------- sales_q1_europe | 10 | q1_2020 | FRANCE | 01-FEB-20 00:00:00 | 500000 @@ -70,7 +72,7 @@ edb=# SELECT tableoid::regclass, * FROM sales ORDER BY date; Use this query to fetch the values from a specific partition `q1_2020` or subpartition `q1_europe`: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales PARTITION (q1_2020) ORDER BY date; tableoid | dept_no | part_no | country | date | amount -----------------+---------+-----------+---------+--------------------+-------- @@ -88,15 +90,18 @@ edb=# SELECT tableoid::regclass, country FROM sales SUBPARTITION (q1_europe) ORD This `SELECT` statement selects rows from a specific partition or subpartition of a partitioned table by specifying the keyword `PARTITION` or `SUBPARTITION`: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales PARTITION (q2_2020) ORDER BY country; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount -----------------+---------+---------+---------+--------------------+-------- sales_q2_asia | 10 | q2_asia | INDIA | 01-APR-20 00:00:00 | 650000 sales_q2_europe | 10 | q2_2020 | ITALY | 01-APR-20 00:00:00 | 550000 (2 rows) - +``` +```sql edb=# SELECT tableoid::regclass, date FROM sales SUBPARTITION (q2_asia) ORDER BY country; +__OUTPUT__ tableoid | date ---------------+-------------------- sales_q2_asia | 01-APR-20 00:00:00 @@ -105,16 +110,19 @@ edb=# SELECT tableoid::regclass, date FROM sales SUBPARTITION (q2_asia) ORDER BY This `UPDATE` statement updates values in a partition or subpartition of the `sales` table: -```text +```sql edb=# UPDATE sales PARTITION (q1_2020) SET amount = 10000 WHERE amount = 500000 RETURNING tableoid::regclass, *; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount -----------------+---------+---------+---------+--------------------+-------- sales_q1_europe | 10 | q1_2020 | FRANCE | 01-FEB-20 00:00:00 | 10000 (1 row) UPDATE 1 - +``` +```sql edb=# UPDATE sales SUBPARTITION (q1_europe) SET amount = 5000 WHERE amount = 600000 RETURNING tableoid::regclass, *; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount -----------------+---------+-----------+---------+--------------------+-------- sales_q1_europe | 10 | q1_europe | FRANCE | 01-FEB-20 00:00:00 | 5000 @@ -125,16 +133,19 @@ UPDATE 1 This `DELETE` statement removes rows from the partition `q2_2020` or subpartition `q2_asia` of the `sales` table: -```text +```sql edb=# DELETE FROM sales PARTITION (q2_2020) WHERE amount = 550000 RETURNING tableoid::regclass, *; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount -----------------+---------+---------+---------+--------------------+-------- sales_q2_europe | 10 | q2_2020 | ITALY | 01-APR-20 00:00:00 | 550000 (1 row) DELETE 1 - +``` +```sql edb=# DELETE FROM sales SUBPARTITION (q2_asia) RETURNING tableoid::regclass, *; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount ---------------+---------+---------+---------+--------------------+-------- sales_q2_asia | 10 | q2_asia | INDIA | 01-APR-20 00:00:00 | 650000 @@ -147,7 +158,7 @@ DELETE 1 You can use aliases with `SELECT`, `INSERT`, `UPDATE`, or `DELETE` statements to access a partition or subpartition. This example creates a partitioned table `sales` that's range partitioned by date and subpartitioned using list partitioning by the `country` column: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -178,8 +189,9 @@ PARTITION BY RANGE(date) The `SELECT` statement shows two partitions. Each partition has three subpartitions. -```text +```sql edb=# SELECT subpartition_name, high_value, partition_name FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ subpartition_name | high_value | partition_name -------------------+---------------------+---------------- Q1_EUROPE | 'FRANCE', 'ITALY' | Q1_2020 @@ -193,7 +205,7 @@ edb=# SELECT subpartition_name, high_value, partition_name FROM ALL_TAB_SUBPARTI This `INSERT` statement creates an alias of the `sales` table and inserts rows into partition `q1_2020` and `q2_2020` or subpartition `q1_europe` and `q1_asia`: -```text +```sql INSERT INTO sales PARTITION (q1_2020) AS q1_sales VALUES (10, 'q1_2020', 'FRANCE', '2020-Feb-01', '500000'); INSERT INTO sales PARTITION (q2_2020) q2_sales (q2_sales.dept_no, q2_sales.part_no, q2_sales.country, q2_sales.date, q2_sales.amount) VALUES (20, 'q2_2020', 'ITALY', '2020-Apr-01', '550000'); INSERT INTO sales SUBPARTITION (q1_europe) AS sales_q1_europe VALUES (10, 'q1_europe', 'FRANCE', '2020-Feb-01', '600000'); @@ -202,16 +214,19 @@ INSERT INTO sales SUBPARTITION (q1_asia) sales_q1_asia (sales_q1_asia.dept_no, s This `SELECT` statement selects rows from a specific partition or subpartition of a `sales` table: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales PARTITION (q1_2020) AS q1_sales ORDER BY country; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount -----------------+---------+-----------+---------+--------------------+-------- sales_q1_europe | 10 | q1_2020 | FRANCE | 01-FEB-20 00:00:00 | 500000 sales_q1_europe | 10 | q1_europe | FRANCE | 01-FEB-20 00:00:00 | 600000 sales_q1_asia | 20 | q1_asia | INDIA | 01-MAR-20 00:00:00 | 650000 (3 rows) - +``` +```sql edb=# SELECT tableoid::regclass, * FROM sales SUBPARTITION (q1_europe) sales_q1_europe ORDER BY country; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount -----------------+---------+-----------+---------+--------------------+-------- sales_q1_europe | 10 | q1_2020 | FRANCE | 01-FEB-20 00:00:00 | 500000 @@ -221,7 +236,7 @@ edb=# SELECT tableoid::regclass, * FROM sales SUBPARTITION (q1_europe) sales_q1_ This `UPDATE` statement updates values in a partition or subpartition of the `sales` table: -```text +```sql edb=# UPDATE sales PARTITION (q1_2020) AS q1_sales SET q1_sales.amount = 10000 WHERE q1_sales.amount = 500000; UPDATE 1 @@ -231,7 +246,7 @@ UPDATE 1 This `DELETE` statement removes rows from the partition `q1_2020` or subpartition `q1_europe` of the `sales` table: -```text +```sql edb=# DELETE FROM sales PARTITION (q1_2020) q1_sales WHERE q1_sales.amount = 10000; DELETE 1 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/05_handling_stray_values_in_a_list_or_range_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/05_handling_stray_values_in_a_list_or_range_partitioned_table.mdx index 039a8753e87..61a7cb91138 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/05_handling_stray_values_in_a_list_or_range_partitioned_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/05_handling_stray_values_in_a_list_or_range_partitioned_table.mdx @@ -17,7 +17,7 @@ A `DEFAULT` partition captures any rows that don't fit into any other partition The syntax of a `DEFAULT` rule is: -```text +```sql PARTITION [] VALUES (DEFAULT) ``` @@ -25,7 +25,7 @@ Where `partition_name` specifies the name of the partition or subpartition that You can create a list-partitioned table in which the server decides the partition for storing the data based on the value of the `country` column. In that case, if you attempt to add a row in which the value of the `country` column contains a value not listed in the rules, an error is reported: -```text +```sql edb=# INSERT INTO sales VALUES edb-# (40, '3000x', 'IRELAND', '01-Mar-2012', '45000'); ERROR: no partition of relation "sales_2012" found for row @@ -34,7 +34,7 @@ DETAIL: Partition key of the failing row contains (country) = (IRELAND). This example creates such a table but adds a `DEFAULT` partition. The server stores any rows that don't match a value specified in the partitioning rules for `europe`, `asia`, or `americas` partitions in the `others` partition. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -61,8 +61,9 @@ INSERT INTO sales VALUES Query the contents of the `sales` table to confirm that the previously rejected row is now stored in the `sales_others` partition: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount ----------------+---------+---------+----------+--------------------+-------- sales_americas | 40 | 9519b | US | 12-APR-12 00:00:00 | 145000 @@ -95,14 +96,14 @@ EDB Postgres Advanced Server provides the following methods to reassign the cont This example uses the `ALTER TABLE... ADD PARTITION` command. It assumes there's no conflicting values between the existing rows in the table and the values of the partition to add. -```text +```sql edb=# ALTER TABLE sales ADD PARTITION africa values ('SOUTH AFRICA', 'KENYA'); ALTER TABLE ``` When the following rows are inserted into the table, an error occurs, indicating that there are conflicting values: -```text +```sql edb=# INSERT INTO sales (dept_no, country) VALUES (1,'FRANCE'),(2,'INDIA'),(3,'US'),(4,'SOUTH AFRICA'),(5,'NEPAL'); INSERT 0 5 @@ -110,7 +111,7 @@ INSERT 0 5 Row `(4,'SOUTH AFRICA')` conflicts with the `VALUES` list in the `ALTER TABLE... ADD PARTITION` statement, thus resulting in an error: -```text +```sql edb=# ALTER TABLE sales ADD PARTITION africa values ('SOUTH AFRICA', 'KENYA'); ERROR: updated partition constraint for default partition "sales_others" would be violated by some row @@ -122,7 +123,7 @@ This example splits a `DEFAULT` partition, redistributing the partition's conten This command inserts rows into the table, including rows into the `DEFAULT` partition: -```text +```sql INSERT INTO sales VALUES (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'), (10, '9519b', 'ITALY', '07-Jul-2012', '15000'), @@ -137,8 +138,9 @@ INSERT INTO sales VALUES The partitions include the `DEFAULT others` partition: -```text +```sql edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+--------------------- EUROPE | 'FRANCE', 'ITALY' @@ -150,8 +152,9 @@ edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; This command shows the rows distributed among the partitions: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no| part_no | country | date | amount --------------+--------+---------+--------------+--------------------+------- sales_americas| 30 | 9519b | US | 12-APR-12 00:00:00 |145000 @@ -168,7 +171,7 @@ sales_others | 50 | 3788a | CHINA | 12-MAY-12 00:00:00 | 4950 This command splits the `DEFAULT others` partition into partitions named `africa` and `others`: -```text +```sql ALTER TABLE sales SPLIT PARTITION others VALUES ('SOUTH AFRICA', 'KENYA') INTO (PARTITION africa, PARTITION others); @@ -176,8 +179,9 @@ ALTER TABLE sales SPLIT PARTITION others VALUES The partitions now include the `africa` partition along with the `DEFAULT others` partition: -```text +```sql edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; +__OUTPUT__ partition_name | high_value ----------------+------------------------- EUROPE | 'FRANCE', 'ITALY' @@ -190,8 +194,9 @@ edb=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS; This command shows that the rows were redistributed across the new partitions: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid |dept_no | part_no | country | date | amount ---------------+--------+---------+-------------+--------------------+------- sales_americas | 30 | 9519b | US | 12-APR-12 00:00:00 |145000 @@ -212,7 +217,7 @@ A `MAXVALUE` partition or subpartition captures any rows that don't fit into any The syntax of a `MAXVALUE` rule is: -```text +```sql PARTITION [] VALUES LESS THAN (MAXVALUE) ``` @@ -220,7 +225,7 @@ Where `partition_name` specifies the name of the partition that stores any rows The last example created a range-partitioned table in which the data was partitioned based on the value of the `date` column. If you attempt to add a row with a `date` value that exceeds a date listed in the partitioning constraints, EDB Postgres Advanced Server reports an error. -```text +```sql edb=# INSERT INTO sales VALUES edb-# (40, '3000x', 'IRELAND', '01-Mar-2013', '45000'); ERROR: no partition of relation "sales" found for row @@ -229,7 +234,7 @@ DETAIL: Partition key of the failing row contains (date) = (01-MAR-13 00:00:00) This `CREATE TABLE` command creates the same table but with a `MAXVALUE` partition. Instead of throwing an error, the server stores any rows that don't match the previous partitioning constraints in the `others` partition. -```text +```sql CREATE TABLE sales ( dept_no number, @@ -250,15 +255,16 @@ PARTITION BY RANGE(date) To test the `MAXVALUE` partition, add a row with a value in the `date` column that exceeds the last date value listed in a partitioning rule. The server stores the row in the `others` partition. -```text +```sql INSERT INTO sales VALUES (40, '3000x', 'IRELAND', '01-Mar-2013', '45000'); ``` Query the contents of the `sales` table to confirm that the previously rejected row is now stored in the `sales_others` partition: -```text +```sql edb=# SELECT tableoid::regclass, * FROM sales; +__OUTPUT__ tableoid | dept_no | part_no | country | date | amount ---------------+---------+---------+----------+--------------------+-------- sales_q1_2012 | 10 | 4519b | FRANCE | 17-JAN-12 00:00:00 | 45000 diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/06_specifying_multiple_partitioning_keys_in_a_range_partitioned_table.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/06_specifying_multiple_partitioning_keys_in_a_range_partitioned_table.mdx index a628e3b7c62..f20f89c6076 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/06_specifying_multiple_partitioning_keys_in_a_range_partitioned_table.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/06_specifying_multiple_partitioning_keys_in_a_range_partitioned_table.mdx @@ -15,7 +15,7 @@ You can often improve performance by specifying multiple key columns for a `RANG Range-partitioned table definitions can include multiple columns in the partitioning key. To specify multiple partitioning keys for a range-partitioned table, include the column names in a comma-separated list after the `PARTITION BY RANGE` clause: -```text +```sql CREATE TABLE sales ( dept_no number, @@ -41,8 +41,9 @@ PARTITION BY RANGE(sale_year, sale_month) If a table is created with multiple partitioning keys, you must specify multiple key values when querying the table to take full advantage of partition pruning: -```text +```sql edb=# EXPLAIN SELECT * FROM sales WHERE sale_year = 2012 AND sale_month = 8; +__OUTPUT__ QUERY PLAN ---------------------------------------------------------------------------- Append (cost=0.00..14.35 rows=1 width=250) diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/index.mdx index 1c81de7f597..4aac401c902 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/07_retrieving_information_about_a_partitioned_table/index.mdx @@ -29,8 +29,9 @@ Where `view_name` specifies the name of the table partitioning view. Querying a view can provide information about the structure of a partitioned or subpartitioned table. For example, this code displays the names of a subpartitioned table: -```text +```sql edb=# SELECT subpartition_name, partition_name FROM ALL_TAB_SUBPARTITIONS; +__OUTPUT__ subpartition_name | partition_name -------------------+---------------- EUROPE_2011 | EUROPE diff --git a/product_docs/docs/epas/15/epas_compat_tools_guide/02_edb_loader.mdx b/product_docs/docs/epas/15/epas_compat_tools_guide/02_edb_loader.mdx index 1588f20b48f..38babe80a09 100644 --- a/product_docs/docs/epas/15/epas_compat_tools_guide/02_edb_loader.mdx +++ b/product_docs/docs/epas/15/epas_compat_tools_guide/02_edb_loader.mdx @@ -51,7 +51,7 @@ EDB\*Loader features include: - Using EDB\*Loader with connection poolers such as PgPool-II and PgBouncer isn't supported. EDB\*Loader must connect directly to EDB Postgres Advanced Server version 14. Alternatively, the following are some of the commands you can use for loading data through connection poolers: - ``` + ```shell psql \copy jdbc copyIn psycopg2 copy_from @@ -125,7 +125,7 @@ When you invoke EDB\*Loader, the list of arguments provided must include the nam The syntax for the EDB\*Loader control file is: -```text +```sql [ OPTIONS ( [, ] ...) ] LOAD DATA [ CHARACTERSET ] @@ -147,7 +147,7 @@ LOAD DATA Where `field_def` defines a field in the specified `data_file`. The field describes the location, data format, or value of the data to insert into `column_name` of `target_table`. The syntax of `field_def` is: -```text +```sql { CONSTANT | FILLER [ POSITION () ] [ ] | @@ -160,7 +160,7 @@ Where `field_def` defines a field in the specified `data_file`. The field descri Where `fieldtype` is one of: -```text +```sql CHAR [()] | DATE [()] | TIMESTAMP [()] [ "" ] | INTEGER EXTERNAL [()] | FLOAT EXTERNAL [()] | DECIMAL EXTERNAL [()] | @@ -356,7 +356,7 @@ If you specify the `FIELDS TERMINATED BY` clause, then you can't specify the `PO Conditional clause taking the following form: -``` +```text [ ( ] { (start:end) | column_name } { = | != | <> } 'val' [ ) ] ``` @@ -425,7 +425,7 @@ If you specify the `FIELDS TERMINATED BY` clause, then you can't specify the `PO Defines the location of the field in a record in a fixed-width field data file. `start` and `end` are positive integers. The first character in the record has a start value of `1`. -``` +```sql CHAR [()] | DATE [()] | TIMESTAMP [()] [ "" ] | INTEGER EXTERNAL [()] | FLOAT EXTERNAL [()] | DECIMAL EXTERNAL [()] | @@ -477,7 +477,7 @@ ZONED EXTERNAL [()] | ZONED [([,])] If you want to provide an SQL expression, then a workaround is to specify the datemask and SQL expression using the `TO_CHAR` function as: - ```text + ```sql time_stamp timestamp "yyyymmddhh24miss" "to_char(to_timestamp(:time_stamp, 'yyyymmddhh24miss'), 'yyyymmddhh24miss')" ``` @@ -508,7 +508,7 @@ If you want to provide an SQL expression, then a workaround is to specify the da The following is the syntax for a `SELECT` statement: - ``` + ```sql "(SELECT [ FROM [ WHERE ] ])" ``` @@ -524,7 +524,7 @@ The following are some examples of control files and their corresponding data fi This control file uses a delimiter-separated data file that appends rows to the `emp` table. The `APPEND` clause is used to allow inserting additional rows into the `emp` table. -```text +```sql LOAD DATA INFILE 'emp.dat' BADFILE 'emp.bad' @@ -546,7 +546,7 @@ LOAD DATA The following is the corresponding delimiter-separated data file: -```text +```sql 9101,ROGERS,CLERK,7902,17-DEC-10,1980.00,20 9102,PETERSON,SALESMAN,7698,20-DEC-10,2600.00,30,2300.00 9103,WARREN,SALESMAN,7698,22-DEC-10,5250.00,30,2500.00 @@ -559,9 +559,9 @@ Double quotation marks surround the value `JONES, JR.` in the last record since This query displays the rows added to the table after the EDB\*Loader session: -```text +```sql SELECT * FROM emp WHERE empno > 9100; - +__OUTPUT__ empno| ename | job | mgr| hiredate | sal | comm |deptno ------+-----------+---------+----+-------------------+-------+--------+------ 9101| ROGERS | CLERK |7902| 17-DEC-10 00:00:00|1980.00| | 20 @@ -575,7 +575,7 @@ SELECT * FROM emp WHERE empno > 9100; This control file loads the same rows into the `emp` table. It uses a data file containing fixed-width fields. The `FIELDS TERMINATED BY` and `OPTIONALLY ENCLOSED BY` clauses are absent. Instead, each field includes the `POSITION` clause. -```text +```sql LOAD DATA INFILE 'emp_fixed.dat' BADFILE 'emp_fixed.bad' @@ -596,7 +596,7 @@ LOAD DATA The following is the corresponding data file containing fixed-width fields: -```text +```sql 9101ROGERS CLERK 790217-DEC-10 1980.0020 9102PETERSON SALESMAN 769820-DEC-10 2600.0030 2300.00 9103WARREN SALESMAN 769822-DEC-10 5250.0030 2500.00 @@ -607,7 +607,7 @@ The following is the corresponding data file containing fixed-width fields: This control file loads the same rows into the `emp` table but uses a data file with one physical record. Terminate each record loaded as a row in the table using a semicolon (`;`). The `RECORDS DELIMITED BY` clause specifies this value. -```text +```sql LOAD DATA INFILE 'emp_recdelim.dat' BADFILE 'emp_recdelim.bad' @@ -630,7 +630,7 @@ LOAD DATA The following is the corresponding data file. The content is a single physical record in the data file. The record delimiter character is included following the last record, that is, at the end of the file. -```text +```sql 9101,ROGERS,CLERK,7902,17-DEC-10,1980.00,20,;9102,PETERSON,SALESMAN,7698,20-DEC-10, 2600.00,30,2300.00;9103,WARREN,SALESMAN,7698,22-DEC-10,5250.00,30,2500.00;9104,"JONES, JR.",MANAGER,7839,02-APR-09,7975.00,20,; @@ -640,7 +640,7 @@ JR.",MANAGER,7839,02-APR-09,7975.00,20,; This control file uses the `FILLER` clause in the data fields for the `sal` and `comm` columns. EDB\*Loader ignores the values in these fields and sets the corresponding columns to null. -```text +```sql LOAD DATA INFILE 'emp_fixed.dat' BADFILE 'emp_fixed.bad' @@ -661,9 +661,9 @@ LOAD DATA Using the same fixed-width data file as in the prior fixed-width field example, the resulting rows in the table appear as follows: -```text +```sql SELECT * FROM emp WHERE empno > 9100; - +__OUTPUT__ empno| ename | job | mgr| hiredate | sal | comm |deptno ------+-----------+---------+----+-------------------+-------+--------+------ 9101| ROGERS | CLERK |7902| 17-DEC-10 00:00:00| | | 20 @@ -677,7 +677,7 @@ SELECT * FROM emp WHERE empno > 9100; This control file uses the `BOUNDFILLER` clause in the data fields for the `job` and `mgr` columns. EDB\*Loader ignores the values in these fields and sets the corresponding columns to null in the same manner as the `FILLER` clause. However, unlike columns with the `FILLER` clause, you can use columns with the `BOUNDFILLER` clause in an expression, as shown for column `jobdesc`. -```text +```sql LOAD DATA INFILE 'emp.dat' BADFILE 'emp.bad' @@ -700,7 +700,7 @@ LOAD DATA The following is the delimiter-separated data file used in this example: -```text +```sql 9101,ROGERS,CLERK,7902,17-DEC-10,1980.00,20 9102,PETERSON,SALESMAN,7698,20-DEC-10,2600.00,30,2300.00 9103,WARREN,SALESMAN,7698,22-DEC-10,5250.00,30,2500.00 @@ -709,7 +709,7 @@ The following is the delimiter-separated data file used in this example: The following table is loaded using the preceding control file and data file: -```text +```sql CREATE TABLE empjob ( empno NUMBER(4) NOT NULL CONSTRAINT empjob_pk PRIMARY KEY, ename VARCHAR2(10), @@ -721,9 +721,9 @@ CREATE TABLE empjob ( The resulting rows in the table appear as follows: -```text +```sql SELECT * FROM empjob; - +__OUTPUT__ empno | ename | job | mgr | jobdesc -------+------------+-----+-----+--------------------------- 9101 | ROGERS | | | CLERK for manager 7902 @@ -737,7 +737,7 @@ SELECT * FROM empjob; This control file contains the field type clauses with the length specification: -```text +```sql LOAD DATA INFILE 'emp_fixed.dat' BADFILE 'emp_fixed.bad' @@ -761,7 +761,7 @@ LOAD DATA The following is the corresponding data file containing fixed-width fields: -```text +```sql 9101ROGERS CLERK 790217-DEC-10 1980.0020 9102PETERSON SALESMAN 769820-DEC-10 2600.0030 2300.00 9103WARREN SALESMAN 769822-DEC-10 5250.0030 2500.00 @@ -770,9 +770,9 @@ The following is the corresponding data file containing fixed-width fields: The resulting rows in the table appear as follows: -```text +```sql SELECT * FROM emp WHERE empno > 9100; - +__OUTPUT__ empno| ename | job | mgr| hiredate | sal | comm |deptno ------+-----------+---------+----+-------------------+-------+--------+------ 9101| ROGERS | CLERK |7902| 17-DEC-10 00:00:00|1980.00| | 20 @@ -788,7 +788,7 @@ This example uses the `NULLIF` clause on the `sal` column to set it to null for The following is the control file: -```text +```sql LOAD DATA INFILE 'emp_fixed_2.dat' BADFILE 'emp_fixed_2.bad' @@ -809,7 +809,7 @@ LOAD DATA The following is the corresponding data file: -```text +```sql 9101ROGERS CLERK 790217-DEC-10 1980.0020 9102PETERSON SALESMAN 769820-DEC-10 2600.0030 2300.00 9103WARREN SALESMAN 769822-DEC-10 5250.0030 2500.00 @@ -821,10 +821,10 @@ The following is the corresponding data file: The resulting rows in the table appear as follows: -```text +```sql SELECT empno, ename, job, NVL(TO_CHAR(sal),'--null--') "sal", NVL(TO_CHAR(comm),'--null--') "comm", deptno FROM emp WHERE empno > 9100; - +__OUTPUT__ empno | ename | job | sal | comm | deptno -------+------------+----------+----------+----------+------- 9101 | ROGERS | CLERK | 1980.00 | --null-- | 20 @@ -848,7 +848,7 @@ The `comm` value of `2000.00` in the data file for employee `JACKSON` is ignored This example uses a `SELECT` statement in the expression of the field definition to return the value to load into the column: -```text +```sql LOAD DATA INFILE 'emp_fixed.dat' BADFILE 'emp_fixed.bad' @@ -869,9 +869,9 @@ LOAD DATA The following is the content of the `dept` table used in the `SELECT` statement: -```text +```sql SELECT * FROM dept; - +__OUTPUT__ deptno | dname | loc ---------+------------+--------- 10 | ACCOUNTING | NEW YORK @@ -883,7 +883,7 @@ SELECT * FROM dept; The following is the corresponding data file: -```text +```sql 9101ROGERS CLERK 790217-DEC-10 1980.0020 9102PETERSON SALESMAN 769820-DEC-10 2600.0030 2300.00 9103WARREN SALESMAN 769822-DEC-10 5250.0030 2500.00 @@ -892,9 +892,9 @@ The following is the corresponding data file: The resulting rows in the table appear as follows: -```text +```sql SELECT * FROM emp WHERE empno > 9100; - +__OUTPUT__ empno| ename | job | mgr| hiredate | sal | comm |deptno ------+-----------+---------+----+-------------------+-------+--------+------ 9101| ROGERS | RESEARCH|7902| 17-DEC-10 00:00:00|1980.00| | 20 @@ -911,14 +911,14 @@ SELECT * FROM emp WHERE empno > 9100; This example uses multiple `INTO TABLE` clauses. For this example, two empty tables are created with the same data definition as the `emp` table. The following `CREATE TABLE` commands create these two empty tables, without inserting rows from the original `emp` table: -```text +```sql CREATE TABLE emp_research AS SELECT * FROM emp WHERE deptno = 99; CREATE TABLE emp_sales AS SELECT * FROM emp WHERE deptno = 99; ``` This control file contains two `INTO TABLE` clauses. Without an `APPEND` clause, it uses the default operation of `INSERT`. For this operation, the tables `emp_research` and `emp_sales` must be empty. -```text +```sql LOAD DATA INFILE 'emp_multitbl.dat' BADFILE 'emp_multitbl.bad' @@ -959,7 +959,7 @@ Column `comm` of the `emp_sales` table is assigned a SQL expression. Expressions The following is the corresponding data file: -```text +```sql 9101ROGERS CLERK 790217-DEC-10 1980.0020 9102PETERSON SALESMAN 769820-DEC-10 2600.0030 2300.00 9103WARREN SALESMAN 769822-DEC-10 5250.0030 2500.00 @@ -970,24 +970,25 @@ The following is the corresponding data file: The records for employees `ARNOLDS` and `JACKSON` contain `10` and `40` in columns 47 through 48, which don't satisfy any of the `WHEN` clauses. EDB\*Loader writes these two records to the discard file, `emp_multitbl.dsc`, with the following content: -```text +```sql 9105ARNOLDS CLERK 778213-SEP-10 3750.0010 9106JACKSON ANALYST 756603-JAN-11 4500.0040 ``` The following are the rows loaded into the `emp_research` and `emp_sales` tables: -```text +```sql SELECT * FROM emp_research; - +__OUTPUT__ empno | ename | job | mgr | hiredate | sal | comm | deptno -------+------------+---------+------+--------------------+---------+------+------- 9101 | ROGERS | CLERK | 7902 | 17-DEC-10 00:00:00 | 1980.00 | | 20.00 9104 | JONES, JR. | MANAGER | 7839 | 02-APR-09 00:00:00 | 7975.00 | | 20.00 (2 rows) - +``` +```sql SELECT * FROM emp_sales; - +__OUTPUT__ empno | ename | job | mgr | hiredate | sal | comm | deptno -------+----------+----------+------+--------------------+---------+---------+-------- 9102 | PETERSON | SALESMAN | 7698 | 20-DEC-10 00:00:00 | 2600.00 | 2950.00 | 30.00 @@ -1001,7 +1002,7 @@ empno | ename | job | mgr | hiredate | sal | comm | d You must have superuser privileges to run EDB\*Loader. Use the following command to invoke EDB\*Loader from the command line: -```text +```sql edbldr [ -d ] [ -p ] [ -h ] [ USERID={ | / | | / } ] [ { -c | connstr= } ] @@ -1179,7 +1180,7 @@ The operating system account `enterprisedb` must have write permission on the di This example invokes EDB\*Loader using a control file named `emp.ctl` to load a table in database `edb`. The file is located in the current working directory. -```text +```shell $ /usr/edb/as14/bin/edbldr -d edb USERID=enterprisedb/password CONTROL=emp.ctl EDB*Loader: Copyright (c) 2007-2021, EnterpriseDB Corporation. @@ -1189,7 +1190,7 @@ Successfully loaded (4) records In this example, EDB\*Loader prompts for the user name and password since they are omitted from the command line. In addition, the files for the bad file and log file are specified with the `BAD` and `LOG` command line parameters. -```text +```shell $ /usr/edb/as14/bin/edbldr -d edb CONTROL=emp.ctl BAD=/tmp/emp.bad LOG=/tmp/emp.log Enter the user name : enterprisedb @@ -1201,7 +1202,7 @@ Successfully loaded (4) records This example runs EDB\*Loader using a parameter file located in the current working directory. The `SKIP` and `ERRORS` parameter default values are specified in the parameter file in addition the `CONTROL`, `BAD`, and `LOG` files. The parameter file, `emp.par`, contains the following: -```text +```ini CONTROL=emp.ctl BAD=/tmp/emp.bad LOG=/tmp/emp.log @@ -1211,8 +1212,8 @@ ERRORS=10 Invoke EDB\*Loader with the parameter file: -```text -$ /usrew/edb/as14/bin/edbldr -d edb PARFILE=emp.par +```shell +$ /usr/edb/as14/bin/edbldr -d edb PARFILE=emp.par Enter the user name : enterprisedb Enter the password : EDB*Loader: Copyright (c) 2007-2021, EnterpriseDB Corporation. @@ -1222,7 +1223,7 @@ Successfully loaded (3) records This example invokes EDB\*Loader using a `connstr=` option that uses the `emp.ctl` control file located in the current working directory to load a table in a database named `edb`: -```text +```shell $ /usr/edb/as14/bin/edbldr connstr=\"sslmode=verify-ca sslcompression=0 host=127.0.0.1 dbname=edb port=5444 user=enterprisedb\" CONTROL=emp.ctl EDB*Loader: Copyright (c) 2007-2021, EnterpriseDB Corporation. @@ -1273,7 +1274,7 @@ The following are restrictions on the target table of a direct path load: To run a direct path load, add the `DIRECT=TRUE` option: -```text +```shell $ /usr/edb/as14/bin/edbldr -d edb USERID=enterprisedb/password CONTROL=emp.ctl DIRECT=TRUE EDB*Loader: Copyright (c) 2007-2021, EnterpriseDB Corporation. @@ -1328,7 +1329,7 @@ This example shows the use of a parallel direct path load on the `emp` table. This is the control file used in the first session: -```text +```sql LOAD DATA INFILE '/home/user/loader/emp_parallel_1.dat' APPEND @@ -1351,7 +1352,7 @@ You must specify the `APPEND` clause in the control file for a parallel direct p This example invokes EDB\*Loader in the first session. You must specify the `DIRECT=TRUE` and `PARALLEL=TRUE` parameters. -```text +```shell $ /usr/edb/as14/bin/edbldr -d edb USERID=enterprisedb/password CONTROL=emp_parallel_1.ctl DIRECT=TRUE PARALLEL=TRUE WARNING: index maintenance will be skipped with PARALLEL load @@ -1360,7 +1361,7 @@ EDB*Loader: Copyright (c) 2007-2021, EnterpriseDB Corporation. The control file used for the second session appears as follows. It's the same as the one used in the first session, but it uses a different data file. -```text +```sql LOAD DATA INFILE '/home/user/loader/emp_parallel_2.dat' APPEND @@ -1381,7 +1382,7 @@ LOAD DATA This control file is used in a second session: -```text +```shell $ /usr/edb/as14/bin/edbldr -d edb USERID=enterprisedb/password CONTROL=emp_parallel_2.ctl DIRECT=TRUE PARALLEL=TRUE WARNING: index maintenance will be skipped with PARALLEL load @@ -1396,9 +1397,9 @@ Successfully loaded (10000) records This query shows that the index on the emp table was marked `INVALID`: -```text +```sql SELECT index_name, status FROM user_indexes WHERE table_name = 'EMP'; - +__OUTPUT__ index_name | status -------------+--------- EMP_PK | INVALID @@ -1410,15 +1411,15 @@ SELECT index_name, status FROM user_indexes WHERE table_name = 'EMP'; Queries on the `emp` table don't use the index unless you rebuild it using the `REINDEX` command: -```text +```sql REINDEX INDEX emp_pk; ``` A later query on `user_indexes` shows that the index is now marked as `VALID`: -```text +```sql SELECT index_name, status FROM user_indexes WHERE table_name = 'EMP'; - +__OUTPUT__ index_name | status -------------+-------- EMP_PK | VALID @@ -1445,14 +1446,14 @@ Performing remote loading along with using standard input requires the following This example loads a database running on a database server at `192.168.1.14` using data piped from a source named `datasource`: -```text +```shell datasource | ./edbldr -d edb -h 192.168.1.14 USERID=enterprisedb/password CONTROL=remote.ctl ``` This example also shows how you can use standard input: -```text +```shell ./edbldr -d edb -h 192.168.1.14 USERID=enterprisedb/password CONTROL=remote.ctl < datasource ``` @@ -1476,8 +1477,9 @@ To perform `UPDATE`, use the same steps as when performing a conventional path l This example uses the `emp` table that's distributed with the EDB Postgres Advanced Server sample data. By default, the table contains: -```text +```sql edb=# select * from emp; +__OUTPUT__ empno|ename | job | mgr | hiredate | sal | comm | deptno -----+------+---------+------+--------------------+--------- +-------+-------- 7369 |SMITH |CLERK | 7902 | 17-DEC-80 00:00:00 | 800.00 | | 20 @@ -1499,7 +1501,7 @@ empno|ename | job | mgr | hiredate | sal | comm | deptno This control file (`emp_update.ctl`) specifies the fields in the table in a comma-delimited list. The control file performs an `UPDATE` on the `emp` table. -```text +```sql LOAD DATA INFILE 'emp_update.dat' BADFILE 'emp_update.bad' @@ -1511,7 +1513,7 @@ FIELDS TERMINATED BY "," The data that's being updated or inserted is saved in the `emp_update.dat` file. `emp_update.dat` contains: -```text +```sql 7521,WARD,MANAGER,7839,22-FEB-81 00:00:00,3000.00,0.00,30 7566,JONES,MANAGER,7839,02-APR-81 00:00:00,3500.00,0.00,20 7903,BAKER,SALESMAN,7521,10-JUN-13 00:00:00,1800.00,500.00,20 @@ -1521,14 +1523,15 @@ The data that's being updated or inserted is saved in the `emp_update.dat` file. Invoke EDB\*Loader, specifying the name of the database (`edb`), the name of a database superuser and their associated password, and the name of the control file (`emp_update.ctl`): -``` +```shell edbldr -d edb userid=user_name/password control=emp_update.ctl ``` After performing the update, the `emp` table contains: -```text +```sql edb=# select * from emp; +__OUTPUT__ empno|ename | job | mgr | hiredate | sal | comm | deptno -----+------+---------+------+--------------------+---------+--------+-------- 7369 |SMITH |CLERK | 7902 | 17-DEC-80 00:00:00 | 800.00 | | 20 diff --git a/product_docs/docs/epas/15/epas_compat_tools_guide/03_edb_wrap.mdx b/product_docs/docs/epas/15/epas_compat_tools_guide/03_edb_wrap.mdx index 1d72f81d484..c1b84d7f493 100644 --- a/product_docs/docs/epas/15/epas_compat_tools_guide/03_edb_wrap.mdx +++ b/product_docs/docs/epas/15/epas_compat_tools_guide/03_edb_wrap.mdx @@ -31,7 +31,7 @@ EDB\*Wrap is a command line utility that accepts a single input source file, obf `edbwrap` offers three different command-line styles. The first style is compatible with Oracle's `wrap` utility: -```text +```shell edbwrap iname= [oname=] ``` @@ -43,7 +43,7 @@ If you don't specify an output file name, `edbwrap` writes to a file whose name `edbwrap` offers two other command-line styles: -```text +```shell edbwrap --iname [--oname ] edbwrap -i [-o ] ``` @@ -62,7 +62,7 @@ The following sequence shows how to use `edbwrap`. Create the source code for the `list_emp` procedure in plaintext form: -```text +```sql [bash] cat listemp.sql CREATE OR REPLACE PROCEDURE list_emp IS                                   @@ -86,7 +86,7 @@ END;                                                   Import the `list_emp` procedure with a client application such as `edb-psql`: -```text +```sql [bash] edb-psql edb Welcome to edb-psql 8.4.3.2, the EnterpriseDB interactive terminal. Type:  \copyright for distribution terms @@ -101,8 +101,9 @@ CREATE PROCEDURE View the plaintext source code stored in the server by examining the `pg_proc` system table: -```text +```sql edb=# SELECT prosrc FROM pg_proc WHERE proname = 'list_emp'; +__EDBwrapped__                              prosrc                             --------------------------------------------------------------                                                     @@ -128,7 +129,7 @@ edb=# quit Ofuscate the plaintext file with EDB\*Wrap: -```text +```shell [bash] edbwrap -i listemp.sql                                         EDB*Wrap Utility: Release 8.4.3.2 @@ -156,7 +157,7 @@ The second line of the wrapped file contains an encoding name. In this case, the You can import the obfuscated code to the PostgreSQL server using the same tools that work with plaintext code: -```text +```sql [bash] edb-psql edb Welcome to edb-psql 8.4.3.2, the EnterpriseDB interactive terminal. Type:  \copyright for distribution terms @@ -173,6 +174,7 @@ The pg_proc system table contains the obfuscated code: ```text edb=# SELECT prosrc FROM pg_proc WHERE proname = 'list_emp'; +__OUTPUT__                                      prosrc ----------------------------------------------------------------   $__EDBwrapped__$ @@ -188,9 +190,9 @@ edb=# SELECT prosrc FROM pg_proc WHERE proname = 'list_emp'; Invoke the obfuscated code in the same way that you invoke the plaintext form: -```text +```sql edb=# exec list_emp; - +__OUTPUT__ EMPNO    ENAME -----    ------- 7369     SMITH @@ -219,7 +221,7 @@ Be aware that audit logs produced by the Postgres server show wrapped programs i !!! Note The bodies of the objects created by the following statements aren't stored in obfuscated form: - ```text + ```sql CREATE [OR REPLACE] TYPE type_name AS OBJECT CREATE [OR REPLACE] TYPE type_name UNDER type_name CREATE [OR REPLACE] TYPE BODY type_name diff --git a/product_docs/docs/epas/15/epas_compat_tools_guide/04_dynamic_runtime_instrumentation_tools_architecture_DRITA.mdx b/product_docs/docs/epas/15/epas_compat_tools_guide/04_dynamic_runtime_instrumentation_tools_architecture_DRITA.mdx index d56f570570c..68b37c2aae4 100644 --- a/product_docs/docs/epas/15/epas_compat_tools_guide/04_dynamic_runtime_instrumentation_tools_architecture_DRITA.mdx +++ b/product_docs/docs/epas/15/epas_compat_tools_guide/04_dynamic_runtime_instrumentation_tools_architecture_DRITA.mdx @@ -39,16 +39,19 @@ EDB Postgres Advanced Server's `postgresql.conf` file includes a configuration p - Connect to the server with the EDB-PSQL client and invoke the command: - ```text - SET timed_statistics = TRUE - ``` + Connect to the server with the EDB-PSQL client, and invoke the command: + +```sql +SET timed_statistics = TRUE +``` After modifying the `timed_statistics` parameter, take a starting snapshot. A snapshot captures the current state of each timer and event counter. The server compares the starting snapshot to a later snapshot to gauge system performance. Use the `edbsnap()` function to take the beginning snapshot: -```text +```sql edb=# SELECT * FROM edbsnap(); +__OUTPUT__ edbsnap ---------------------- Statement processed. @@ -57,8 +60,9 @@ edb=# SELECT * FROM edbsnap(); Then, run the workload that you want to evaluate. When the workload is complete or at a strategic point during the workload, take another snapshot: -```text +```sql edb=# SELECT * FROM edbsnap(); +__OUTPUT__ edbsnap ---------------------- Statement processed. @@ -79,14 +83,15 @@ You can use DRITA functions to gather wait information and manage snapshots. DRI The `get_snaps()` function returns a list of the current snapshots. The signature is: -```text +```sql get_snaps() ``` This example uses the `get_snaps()` function to display a list of snapshots: -```text +```sql SELECT * FROM get_snaps(); +__OUTPUT__ get_snaps ------------------------------ 1 25-JUL-18 09:49:04.224597 @@ -112,7 +117,7 @@ The first column in the result list displays the snapshot identifier. The second The `sys_rpt()` function returns system wait information. The signature is: -```text +```sql sys_rpt(, , ) ``` @@ -132,8 +137,9 @@ sys_rpt(, , ) This example shows a call to the `sys_rpt()` function: -```text +```sql SELECT * FROM sys_rpt(9, 10, 10); +__OUTPUT__ sys_rpt ----------------------------------------------------------------------------- WAIT NAME COUNT WAIT TIME % WAIT @@ -165,7 +171,7 @@ The information displayed in the result set includes: The `sess_rpt()` function returns session wait information. The signature is: -```text +```sql sess_rpt(, , ) ``` @@ -185,9 +191,9 @@ sess_rpt(, , ) This example shows a call to the `sess_rpt()` function: -```text +```sql SELECT * FROM sess_rpt(8, 9, 10); - +__OUTPUT__ sess_rpt ------------------------------------------------------------------------------------- ID USER WAIT NAME COUNT TIME % WAIT SES % WAIT ALL @@ -221,7 +227,7 @@ The information displayed in the result set includes: The `sessid_rpt()` function returns session ID information for a specified backend. The signature is: -```text +```sql sessid_rpt(, , ) ``` @@ -241,9 +247,9 @@ sessid_rpt(, , ) This example shows a call to `sessid_rpt()`: -```Text +```sql SELECT * FROM sessid_rpt(8, 9, 3501); - +__OUTPUT__ sessid_rpt ------------------------------------------------------------------------------------- ID USER WAIT NAME COUNT TIME % WAIT SES % WAIT ALL @@ -277,7 +283,7 @@ The information displayed in the result set includes: The `sesshist_rpt()` function returns session wait information for a specified backend. The signature is: -```text +```sql sesshist_rpt(, ) ``` @@ -296,8 +302,9 @@ This example shows a call to the `sesshist_rpt()` function: !!! Note The example was shortened. Over 1300 rows are actually generated. -```text +```sql SELECT * FROM sesshist_rpt (9, 3501); +__OUTPUT__ sesshist_rpt ----------------------------------------------------------------------------- ---------- @@ -461,7 +468,7 @@ The information displayed in the result set includes: The `purgesnap()` function purges a range of snapshots from the snapshot tables. The signature is: -```text +```sql purgesnap(, ) ``` @@ -477,9 +484,9 @@ purgesnap(, ) `purgesnap()` removes all snapshots between `beginning_id` and `ending_id`, inclusive: -```text +```sql SELECT * FROM purgesnap(6, 9); - +__OUTPUT__ purgesnap ------------------------------------ Snapshots in range 6 to 9 deleted. @@ -488,8 +495,9 @@ SELECT * FROM purgesnap(6, 9); A call to the `get_snaps()` function after executing the example shows that snapshots `6` through `9` were purged from the snapshot tables: -```text +```sql SELECT * FROM get_snaps(); +__OUTPUT__ get_snaps ------------------------------ 1 25-JUL-18 09:49:04.224597 @@ -509,15 +517,15 @@ SELECT * FROM get_snaps(); Use the truncsnap() function to delete all records from the snapshot table. The signature is: -```text +```sql truncsnap() ``` For example: -```text +```sql SELECT * FROM truncsnap(); - +__OUTPUT__ truncsnap ---------------------- Snapshots truncated. @@ -526,8 +534,9 @@ SELECT * FROM truncsnap(); A call to the `get_snaps()` function after calling the `truncsnap()` function shows that all records were removed from the snapshot tables: -```Text +```sql SELECT * FROM get_snaps(); +__OUTPUT__ get_snaps ----------- (0 rows) @@ -553,7 +562,7 @@ You can execute the reporting functions individually or you can execute all five The `edbreport()` function includes data from the other reporting functions, plus system information. The signature is: -```text +```sql edbreport(, ) ``` @@ -569,8 +578,9 @@ edbreport(, ) The call to the `edbreport()` function returns a composite report that contains system information and the reports returned by the other statspack functions: -```text +```sql SELECT * FROM edbreport(9, 10); +__OUTPUT__ edbreport -------------------------------------------------------------------------------------- EnterpriseDB Report for database acctg 25-JUL-18 @@ -591,7 +601,8 @@ Schema: public Size: 158 MB Owner: enterprisedb The information displayed in the report introduction includes the database name and version, the current date, the beginning and ending snapshot date and times, database and tablespace details, and schema information. -```text +```sql +__OUTPUT__ Top 10 Relations by pages TABLE RELPAGES @@ -615,7 +626,8 @@ The information displayed in the `Top 10 Relations by pages` section includes: | `TABLE` | The name of the table | | `RELPAGES` | The number of pages in the table | -```text +```sql +__OUTPUT__ Top 10 Indexes by pages INDEX RELPAGES @@ -639,7 +651,8 @@ The information displayed in the `Top 10 Indexes by pages` section includes: | `INDEX` | The name of the index | | `RELPAGES` | The number of pages in the index | -```text +```sql +__OUTPUT__ Top 10 Relations by DML SCHEMA RELATION UPDATES DELETES INSERTS @@ -660,7 +673,8 @@ The information displayed in the `Top 10 Relations by DML` section includes: | `DELETES` | The number of DELETES performed on the table | | `INSERTS` | The number of INSERTS performed on the table | -```text +```sql +__OUTPUT__ DATA from pg_stat_database DATABASE NUMBACKENDS XACT COMMIT XACT ROLLBACK BLKS READ BLKS HIT HIT RATIO @@ -680,7 +694,8 @@ The information displayed in the DATA from `pg_stat_database` section of the rep | `BLKS HIT` | Number of times disk blocks were found already in the buffer cache when a read wasn't necessary. | | `HIT RATIO` | The percentage of times that a block was found in the shared buffer cache. | -```text +```sql +__OUTPUT__ DATA from pg_buffercache RELATION BUFFERS @@ -709,7 +724,8 @@ The information displayed in the `DATA from pg_buffercache` section of the repor For more information on the `CREATE EXTENSION` command, see the [PostgreSQL core documentation](https://www.postgresql.org/docs/current/static/sql-createextension.html). -```text +```sql +__OUTPUT__ DATA from pg_stat_all_tables ordered by seq scan SCHEMA RELATION SEQ SCAN REL TUP READ IDX SCAN @@ -752,7 +768,8 @@ The information displayed in the `DATA from pg_stat_all_tables ordered by seq sc | `UPD` | The number of rows updated | | `DEL` | The number of rows deleted | -```text +```sql +__OUTPUT__ DATA from pg_stat_all_tables ordered by rel tup read SCHEMA RELATION SEQ SCAN REL TUP READ IDX SCAN @@ -795,7 +812,8 @@ The information displayed in the `DATA from pg_stat_all_tables ordered by rel tu | `UPD` | The number of rows updated | | `DEL` | The number of rows deleted | -```text +```sql +__OUTPUT__ DATA from pg_statio_all_tables SCHEMA RELATION HEAP HEAP IDX IDX @@ -841,7 +859,8 @@ The information displayed in the `DATA from pg_statio_all_tables` section includ | `TIDX READ` | The number of toast index blocks read | | `TIDX HIT` | The number of toast index blocks hit | -```text +```sql +__OUTPUT__ DATA from pg_stat_all_indexes SCHEMA RELATION INDEX @@ -881,7 +900,8 @@ The information displayed in the `DATA from pg_stat_all_indexes` section include | `IDX TUP READ` | Number of index entries returned by scans on this index | | `IDX TUP FETCH` | Number of live table rows fetched by simple index scans using this index | -```text +```sql +__OUTPUT__ DATA from pg_statio_all_indexes SCHEMA RELATION INDEX @@ -920,7 +940,8 @@ The information displayed in the `DATA from pg_statio_all_indexes` section inclu | `IDX BLKS READ` | The number of index blocks read | | `IDX BLKS HIT` | The number of index blocks hit | -```text +```sql +__OUTPUT__ System Wait Information WAIT NAME COUNT WAIT TIME % WAIT @@ -945,7 +966,8 @@ The information displayed in the `System Wait Information` section includes: | `WAIT TIME` | The length of the wait time in seconds | | `% WAIT` | The percentage of the total wait time used by this wait for this session | -```text +```sql +__OUTPUT__ Database Parameters from postgresql.conf PARAMETER SETTING @@ -1003,7 +1025,7 @@ The information displayed in the `Database Parameters from postgresql.conf` sect The signature is: -```text +```sql stat_db_rpt(, ) ``` @@ -1019,9 +1041,9 @@ stat_db_rpt(, ) This example shows the `stat_db_rpt()` function: -```text +```sql SELECT * FROM stat_db_rpt(9, 10); - +__OUTPUT__ stat_db_rpt ------------------------------------------------------------------------------------- DATA from pg_stat_database @@ -1050,7 +1072,7 @@ The information displayed in the DATA from `pg_stat_database` section of the rep The signature is: -```text +```sql function_name(, , , ) ``` @@ -1078,9 +1100,9 @@ function_name(, , , ) The `stat_tables_rpt()` function returns a two-part report. The first portion of the report contains: -```text +```sql SELECT * FROM stat_tables_rpt(8, 9, 10, 'ALL'); - +__OUTPUT__ stat_tables_rpt ---------------------------------------------------------------------------- DATA from pg_stat_all_tables ordered by seq scan @@ -1127,7 +1149,8 @@ The information displayed in the `DATA from pg_stat_all_tables ordered by seq sc The second portion of the report contains: -```text +```sql +__OUTPUT__ DATA from pg_stat_all_tables ordered by rel tup read SCHEMA RELATION SEQ SCAN REL TUP READ IDX SCAN @@ -1177,7 +1200,7 @@ The information displayed in the `DATA from pg_stat_all_tables ordered by rel tu The signature is: -```text +```sql statio_tables_rpt(, , , ) ``` @@ -1205,9 +1228,9 @@ statio_tables_rpt(, , , ) The `statio_tables_rpt()` function returns a report that contains: -```text +```sql SELECT * FROM statio_tables_rpt(9, 10, 10, 'SYS'); - +__OUTPUT__ statio_tables_rpt ------------------------------------------------------------------------------------ ------------------------------- @@ -1264,7 +1287,7 @@ The information displayed in the `DATA from pg_statio_all_tables` section includ The signature is: -```text +```sql stat_indexes_rpt(, , , ) ``` @@ -1292,9 +1315,9 @@ stat_indexes_rpt(, , , ) The `stat_indexes_rpt()` function returns a report that contains: -```text +```sql edb=# SELECT * FROM stat_indexes_rpt(9, 10, 10, 'ALL'); - +__OUTPUT__ stat_indexes_rpt ------------------------------------------------------------------------------- --------------------------------------------- @@ -1344,7 +1367,7 @@ The information displayed in the `DATA from pg_stat_all_indexes` section include The signature is: -```text +```sql statio_indexes_rpt(, , , ) ``` @@ -1372,9 +1395,9 @@ statio_indexes_rpt(, , , ) The `statio_indexes_rpt()` function returns a report that contains: -```text +```sql edb=# SELECT * FROM statio_indexes_rpt(9, 10, 10, 'SYS'); - +__OUTPUT__ statio_indexes_rpt ---------------------------------------------------------------------------- ------------------------------------ @@ -1486,8 +1509,9 @@ For a list and description of lightweight locks displayed by DRITA, see the [Pos This example displays lightweight locks `ProcArrayLock`, `CLogControlLock`, `WALBufMappingLock`, and `XidGenLock`. -```text +```sql postgres=# select * from sys_rpt(40,70,20); +__OUTPUT__ sys_rpt ---------------------------------------------------------------------------- WAIT NAME COUNT WAIT TIME % WAIT diff --git a/product_docs/docs/epas/15/epas_guide/01_introduction/03_examples_used.mdx b/product_docs/docs/epas/15/epas_guide/01_introduction/03_examples_used.mdx index 863acec3fd4..6c30ae53f4e 100644 --- a/product_docs/docs/epas/15/epas_guide/01_introduction/03_examples_used.mdx +++ b/product_docs/docs/epas/15/epas_guide/01_introduction/03_examples_used.mdx @@ -12,7 +12,7 @@ The examples use the sample tables `dept`, `emp`, and `jobhist`, whcih are creat You can re-create the tables and programs in the sample database at any time by executing the following script: -```text +```sql /usr/edb/asxx/share/pg-sample.sql ``` @@ -25,7 +25,7 @@ In addition, a script in the same directory contains the database objects create The tables and programs are created in the first schema of the search path in which the current user has permission to create tables and procedures. You can display the search path using the command: -```text +```sql SHOW SEARCH_PATH; ``` @@ -43,7 +43,7 @@ The company also tracks information about jobs held by the employees. Some emplo The following is the `pg-sample.sql` script: -```text +```sql SET datestyle TO 'iso, dmy'; -- diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/01_setting_new_parameters.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/01_setting_new_parameters.mdx index ff9e9c1971c..f08797e7f59 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/01_setting_new_parameters.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/01_setting_new_parameters.mdx @@ -14,7 +14,7 @@ Set each configuration parameter using a name/value pair. Parameter names are no This an example shows some configuration parameter settings in the `postgresql.conf` file: -```text +```ini # This is a comment log_connections = yes log_destination = 'syslog' @@ -60,7 +60,7 @@ Parameters that are preceded by a pound sign (#) are set to their default value. In the `postgresql.conf` file, some parameters contain comments that indicate `change requires restart`. To view a list of the parameters that require a server restart, execute the following query at the psql command line: -```text +```sql SELECT name FROM pg_settings WHERE context = 'postmaster'; ``` @@ -80,7 +80,7 @@ A record specifies a connection type, database name, user name, client IP addres This example shows a log detail for a valid `pg_hba.conf` entry after successful authentication: -```text +```shell 2020-05-08 10:42:17 IST LOG: connection received: host=[local] 2020-05-08 10:42:17 IST LOG: connection authorized: user=u1 database=edb application_name=psql diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/16_pg_prewarm.autoprewarm.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/16_pg_prewarm.autoprewarm.mdx index 8df26be42f3..b75ddc69d45 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/16_pg_prewarm.autoprewarm.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/01_top_performance_related_parameters/16_pg_prewarm.autoprewarm.mdx @@ -24,7 +24,7 @@ Set `pg_prewarm.autoprewarm` to on to enable the `autoprewarm` worker. Set it to Before you can use `autoprewarm`, you must add `$libdir/pg_prewarm` to the libraries listed in the `shared_preload_libraries` configuration parameter of the `postgresql.conf` file, as this example shows: -```text +```ini shared_preload_libraries = '$libdir/dbms_pipe,$libdir/edb_gen,$libdir/dbms_aq,$libdir/pg_prewarm' ``` diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/06_reporting_and_logging_what_to_log.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/06_reporting_and_logging_what_to_log.mdx index 4663bc29c9a..7069ec0d8c0 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/06_reporting_and_logging_what_to_log.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/06_reporting_and_logging_what_to_log.mdx @@ -26,14 +26,14 @@ These configuration parameters control reporting and logging. Use with the optimizer hints feature to provide more detailed information about whether the planner used a hint. Set the `client_min_messages` and `trace_hints` configuration parameters as follows: -```text +```sql SET client_min_messages TO info; SET trace_hints TO true; ``` This example shows how the `SELECT` command with the `NO_INDEX` hint displays the added information produced when you set those configuration parameters: -```text +```sql EXPLAIN SELECT /*+ NO_INDEX(accounts accounts_pkey) */ * FROM accounts WHERE aid = 100; @@ -42,7 +42,7 @@ of NO_INDEX hint. INFO: [HINTS] Bitmap Heap Scan of [accounts].[accounts_pkey] rejected because of NO_INDEX hint. - +__OUTPUT__ QUERY PLAN ------------------------------------------------------------- diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/11_compatibility_options.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/11_compatibility_options.mdx index e668fbac7e3..8335256069a 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/11_compatibility_options.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/11_compatibility_options.mdx @@ -52,11 +52,11 @@ The `GREATEST` function returns the parameter with the greatest value from its l When `edb_redwood_greatest_least` is set to `TRUE`, the `GREATEST` and `LEAST` functions return null when at least one of the parameters is null. -```text +```sql SET edb_redwood_greatest_least TO on; SELECT GREATEST(1, 2, NULL, 3); - +__OUTPUT__ greatest ---------- @@ -65,19 +65,20 @@ greatest When `edb_redwood_greatest_least` is set to `FALSE`, null parameters are ignored except when all parameters are null. In that case, the functions return null. -```text +```sql SET edb_redwood_greatest_least TO off; SELECT GREATEST(1, 2, NULL, 3); - +__OUTPUT__ greatest ---------- 3 (1 row) - +``` +```sql SELECT GREATEST(NULL, NULL, NULL); - +__OUTPUT__ greatest ---------- @@ -104,7 +105,7 @@ When `edb_redwood_raw_names` is set to `TRUE`, the database object names are dis For example, the following user name is created, and then a session is started with that user: -```text +```sql CREATE USER reduser IDENTIFIED BY password; edb=# \c - reduser Password for user reduser: @@ -113,7 +114,7 @@ You are now connected to database "edb" as user "reduser". When connected to the database as `reduser`, the following tables are created: -```text +```sql CREATE TABLE all_lower (col INTEGER); CREATE TABLE ALL_UPPER (COL INTEGER); CREATE TABLE "Mixed_Case" ("Col" INTEGER); @@ -121,8 +122,9 @@ CREATE TABLE "Mixed_Case" ("Col" INTEGER); When viewed from the Redwood catalog `USER_TABLES`, with `edb_redwood_raw_names` set to the default value `FALSE`, the names appear in upper case. The exception is the `Mixed_Case` name, which appears as created and also enclosed by quotation marks. -```text +```sql edb=> SELECT * FROM USER_TABLES; +__OUTPUT__ schema_name | table_name | tablespace_name | status | temporary --------------+--------------+------------------+---------+----------- REDUSER | ALL_LOWER | | VALID | N @@ -133,10 +135,11 @@ edb=> SELECT * FROM USER_TABLES; When viewed with `edb_redwood_raw_names` set to `TRUE`, the names appear in lower case except for the `Mixed_Case` name, which appears as created but without quotation marks. -```text +```sql edb=> SET edb_redwood_raw_names TO true; SET edb=> SELECT * FROM USER_TABLES; +__OUTPUT__ schema_name | table_name | tablespace_name | status | temporary -------------+------------+------------------+--------+----------- reduser | all_lower | | VALID | N @@ -147,9 +150,10 @@ reduser | Mixed_Case | | VALID | N These names now match the case when viewed from the PostgreSQL `pg_tables` catalog: -```text +```sql edb=> SELECT schemaname, tablename, tableowner FROM pg_tables WHERE tableowner = 'reduser'; +__OUTPUT__ schemaname | tablename | tableowner ------------+------------+------------ reduser | all_lower | reduser @@ -176,12 +180,12 @@ If the `edb_redwood_strings` parameter is set to `TRUE`, when a string is concat This example shows the difference. The sample application contains a table of employees. This table has a column named `comm` that's null for most employees. The following query is run with `edb_redwood_string` set to `FALSE`. Concatenating a null column with non-empty strings produces a final result of null, so only employees that have a commission appear in the query result. The output line for all other employees is null. -```text +```sql SET edb_redwood_strings TO off; SELECT RPAD(ename,10) || ' ' || TO_CHAR(sal,'99,999.99') || ' ' || TO_CHAR(comm,'99,999.99') "EMPLOYEE COMPENSATION" FROM emp; - +__OUTPUT__ EMPLOYEE COMPENSATION ---------------------------------- @@ -201,12 +205,12 @@ TO_CHAR(comm,'99,999.99') "EMPLOYEE COMPENSATION" FROM emp; The following is the same query executed when `edb_redwood_strings` is set to `TRUE`. Here, the value of a null column is treated as an empty string. Concatenating an empty string with a non-empty string produces the non-empty string. -```text +```sql SET edb_redwood_strings TO on; SELECT RPAD(ename,10) || ' ' || TO_CHAR(sal,'99,999.99') || ' ' || TO_CHAR(comm,'99,999.99') "EMPLOYEE COMPENSATION" FROM emp; - +__OUTPUT__ EMPLOYEE COMPENSATION ---------------------------------- @@ -253,7 +257,7 @@ If `edb_stmt_level_tx` is set to `TRUE`, then an exception doesn't roll back pri This example, run in PSQL, shows that when `edb_stmt_level_tx` is `FALSE`, the abort of the second `INSERT` command also rolls back the first `INSERT` command. In PSQL, you must issue the command `\set AUTOCOMMIT off`. Otherwise every statement commits automatically, which doesn't show the effect of `edb_stmt_level_tx`. -```text +```sql \set AUTOCOMMIT off SET edb_stmt_level_tx TO off; @@ -265,7 +269,7 @@ DETAIL: Key (deptno)=(0) is not present in table "dept". COMMIT; SELECT empno, ename, deptno FROM emp WHERE empno > 9000; - +__OUTPUT__ empno | ename | deptno -------+-------+-------- (0 rows) @@ -273,7 +277,7 @@ empno | ename | deptno In this example, with `edb_stmt_level_tx` set to `TRUE`, the first `INSERT` command wasn't rolled back after the error on the second `INSERT` command. At this point, the first INSERT command can either be committed or rolled back. -```text +```sql \set AUTOCOMMIT off SET edb_stmt_level_tx TO on; @@ -284,7 +288,7 @@ ERROR: insert or update on table "emp" violates foreign key constraint DETAIL: Key (deptno)=(0) is not present in table "dept" SELECT empno, ename, deptno FROM emp WHERE empno > 9000; - +__OUTPUT__ empno | ename | deptno -------+-------+-------- 9001 | JONES | 40 diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/12_customized_options.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/12_customized_options.mdx index a02046c155e..21b2f1c5a4b 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/12_customized_options.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/12_customized_options.mdx @@ -62,7 +62,7 @@ Temporarily suspends Index Advisor in an EDB-PSQL or PSQL session. To use this c You can load the Index Advisor plugin as follows: -```text +```sql $ psql -d edb -U enterprisedb Password for user enterprisedb: psql (14.0.0) @@ -78,16 +78,19 @@ Use the `SET` command to change the parameter setting to control whether Index A edb=# SET index_advisor.enabled TO off; SET edb=# EXPLAIN SELECT * FROM t WHERE a < 10000; +__OUTPUT__ QUERY PLAN ------------------------------------------------------- Seq Scan on t (cost=0.00..1693.00 rows=9864 width=8) Filter: (a < 10000) (2 rows) - +``` +```sql edb=# SET index_advisor.enabled TO on; SET edb=# EXPLAIN SELECT * FROM t WHERE a < 10000; +__OUTPUT__ QUERY PLAN ----------------------------------------------------------------------------- Seq Scan on t (cost=0.00..1693.00 rows=9864 width=8) @@ -158,7 +161,7 @@ Sets the maximum number of relations that can be protected per role. The total n If the server is started when `edb_sql_protect.max_protected_relations` is set to a value outside of the valid range (for example, a value of 2,147,483,648), then a warning message is logged in the database server log file: -```text +```sql 2014-07-18 16:04:12 EDT WARNING: invalid value for parameter "edb_sql_protect.max_protected_relations": "2147483648" 2014-07-18 16:04:12 EDT HINT: Value exceeds integer range. @@ -170,7 +173,7 @@ Although the upper range for the parameter is listed as the maximum value for an As long as the space required can be reserved in shared memory, the value is acceptable. If the value is such that the space in shared memory can't be reserved, the database server startup fails with an error message like the following: -```text +```sql 2014-07-18 15:22:17 EDT FATAL: could not map anonymous shared memory: Cannot allocate memory 2014-07-18 15:22:17 EDT HINT: This error usually means that PostgreSQL's @@ -202,7 +205,7 @@ Every protected role consumes space in shared memory. The server reserves space If the database server is started when `edb_sql_protect.max_protected_roles` is set to a value outside of the valid range (for example, a value of 2,147,483,648), then a warning message is logged in the database server log file: -```text +```sql 2014-07-18 16:04:12 EDT WARNING: invalid value for parameter "edb_sql_protect.max_protected_roles": "2147483648" 2014-07-18 16:04:12 EDT HINT: Value exceeds integer range. @@ -214,7 +217,7 @@ Although the upper range for the parameter is listed as the maximum value for an As long as the space required can be reserved in shared memory, the value is acceptable. If the value is such that the space in shared memory can't be reserved, the database server startup fails with an error message such as the following: -```text +```sql 2014-07-18 15:22:17 EDT FATAL: could not map anonymous shared memory: Cannot allocate memory 2014-07-18 15:22:17 EDT HINT: This error usually means that PostgreSQL's @@ -246,7 +249,7 @@ Every saved query consumes space in shared memory. The space for the maximum pos If the database server is started when `edb_sql_protect.max_queries_to_save` is set to a value outside of the valid range (for example, a value of 10), then a warning message is logged in the database server log file: -```text +```sql 2014-07-18 13:05:31 EDT WARNING: 10 is outside the valid range for parameter "edb_sql_protect.max_queries_to_save" (100 .. 2147483647) ``` @@ -257,7 +260,7 @@ Although the upper range for the parameter is listed as the maximum value for an As long as the space required can be reserved in shared memory, the value is acceptable. If the value is such that the space in shared memory can't be reserved, the database server startup fails with an error message like the following: -```text +```sql 2014-07-18 15:22:17 EDT FATAL: could not map anonymous shared memory: Cannot allocate memory 2014-07-18 15:22:17 EDT HINT: This error usually means that PostgreSQL's diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/13_ungrouped.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/13_ungrouped.mdx index 5e0b42fe39d..891341706af 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/13_ungrouped.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/13_ungrouped.mdx @@ -26,7 +26,7 @@ These configuration parameters apply only to EDB Postgres Advanced Server and ar This parameter has no effect in EDB Postgres Advanced Server. For example, this form of the `ALTER SESSION` command is accepted in EDB Postgres Advanced Server without throwing a syntax error. However, it doesn't alter the session environment. -```text +```sql ALTER SESSION SET nls_length_semantics = char; ``` @@ -49,7 +49,7 @@ ALTER SESSION SET nls_length_semantics = char; This parameter has no effect in EDB Postgres Advanced Server. For example, this form of the `ALTER SESSION` command is accepted in EDB Postgres Advanced Server without throwing a syntax error. However, it doesn't alter the session environment. -```text +```sql ALTER SESSION SET query_rewrite_enabled = force; ``` @@ -72,7 +72,7 @@ ALTER SESSION SET query_rewrite_enabled = force; This parameter has no effect in EDB Postgres Advanced Server. For example, this form of the `ALTER SESSION` command is accepted in EDB Postgres Advanced Server without throwing a syntax error. However, it doesn't alter the session environment. -```text +```sql ALTER SESSION SET query_rewrite_integrity = stale_tolerated; ``` diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/02_index_advisor_configuration.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/02_index_advisor_configuration.mdx index 355b6e05554..00491841f93 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/02_index_advisor_configuration.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/02_index_advisor_configuration.mdx @@ -16,13 +16,13 @@ When selecting a storage schema for the Index Advisor table, function, and view, If you want to create the Index Advisor objects in a schema named `advisor`, use the command: - ```text + ```sql SET search_path = advisor, public, accounting; ``` 2. Run the `index_advisor.sql` script to create the database objects. If you're running the psql client, you can use the command: - ```text + ```sql \i full_pathname/index_advisor.sql ``` @@ -36,7 +36,7 @@ When selecting a storage schema for the Index Advisor table, function, and view, This example shows creating Index Advisor database objects in a schema named `ia`. The schema is accessible to an Index Advisor user with user name `ia_user`. -```text +```sql $ edb-psql -d edb -U enterprisedb psql.bin (14.0.0, server 14.0.0) Type "help" for help. diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/03_using_index_advisor.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/03_using_index_advisor.mdx index 7d01615bc24..9c7855dae18 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/03_using_index_advisor.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/03_using_index_advisor.mdx @@ -17,7 +17,7 @@ The following examples assume that superuser `enterprisedb` is the Index Advisor The examples use the table created with this statement: -```text +```sql CREATE TABLE t( a INT, b INT ); INSERT INTO t SELECT s, 99999 - s FROM generate_series(0,99999) AS s; ANALYZE t; @@ -25,7 +25,8 @@ ANALYZE t; The resulting table contains the following rows: -```text +```sql +__OUTPUT__ a | b -------+------- 0 | 99999 @@ -46,14 +47,14 @@ When invoking the `pg_advise_index` utility, you must include the name of a file This example shows the contents of a sample `workload.sql` file: -```text +```sql SELECT * FROM t WHERE a = 500; SELECT * FROM t WHERE b < 1000; ``` Run the `pg_advise_index` program: -```text +```shell $ pg_advise_index -d edb -h localhost -U enterprisedb -s 100M -o advisory.sql workload.sql poolsize = 102400 KB @@ -78,14 +79,14 @@ In the code sample, the `-d`, `-h`, and `-U` options are psql connection options The information displayed by the `pg_advise_index` program is logged in the `index_advisor_log` table. In response to the command shown in the example, Index Advisor writes the following `CREATE INDEX` statements to the `advisory.sql` output file: -```text +```sql create index idx_t_1 on t (a); create index idx_t_2 on t (b); ``` You can create the recommended indexes at the psql command line with the `CREATE INDEX` statements in the file. Or you can create the indexes by executing the `advisory.sql` script. -```text +```sql $ edb-psql -d edb -h localhost -U enterprisedb -e -f advisory.sql create index idx_t_1 on t (a); CREATE INDEX @@ -104,7 +105,7 @@ To load the Index Advisor plugin and using Index Advisor: 1. Connect to the server with the `edb-psql` command line utility, and load the Index Advisor plugin: -```text +```sql $ edb-psql -d edb -U enterprisedb ... edb=# LOAD 'index_advisor'; @@ -121,9 +122,9 @@ If you don't preface the statement with the `EXPLAIN` keyword, Index Advisor ana In this example, the `EXPLAIN` statement displays the normal query plan. It's followed by the query plan of the same query if the query were using the recommended hypothetical index: -```text +```sql edb=# EXPLAIN SELECT * FROM t WHERE a < 10000; - +__OUTPUT__ QUERY PLAN ----------------------------------------------------------------------------- Seq Scan on t (cost=0.00..1693.00 rows=10105 width=8) @@ -134,7 +135,8 @@ Result (cost=0.00..337.10 rows=10105 width=8) (cost=0.00..337.10 rows=10105 width=8) Index Cond: (a < 10000) (6 rows) - +``` +```sql edb=# EXPLAIN SELECT * FROM t WHERE a = 100; QUERY PLAN ----------------------------------------------------------------------------- @@ -152,14 +154,14 @@ After loading the Index Advisor plugin, the default value of `index_advisor.enab You can use the `index_advisor.enabled` parameter to temporarily disable Index Advisor without interrupting the psql session: -```text +```sql edb=# SET index_advisor.enabled TO off; SET ``` To enable Index Advisor, set the parameter to `on`: -```text +```sql edb=# SET index_advisor.enabled TO on; SET ``` diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/04_reviewing_the_index_advisor_recommendations.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/04_reviewing_the_index_advisor_recommendations.mdx index d1d28aac854..593c0bf49c2 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/04_reviewing_the_index_advisor_recommendations.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/04_reviewing_the_index_advisor_recommendations.mdx @@ -18,7 +18,7 @@ You can review the index recommendations generated by Index Advisor in several w To review the recommendations of the Index Advisor utility using the `show_index_recommendations()` function, call the function, specifying the process ID of the session: -```text +```sql SELECT show_index_recommendations( pid ); ``` @@ -26,8 +26,9 @@ Where `pid` is the process ID of the current session. If you don't know the proc This code fragment shows an example of a row in a result set: -```text +```sql edb=# SELECT show_index_recommendations(null); +__OUTPUT__ show_index_recommendations --------------------------------------------------------------------- create index idx_t_a on t(a);/* size: 2184 KB, benefit: 3040.62, @@ -44,7 +45,7 @@ In the example, `create index idx_t_a on t(a)` is the SQL statement needed to cr You can display the results of all Index Advisor sessions from the following view: -```text +```sql SELECT * FROM index_recommendations; ``` @@ -64,8 +65,9 @@ Index Advisor stores indexing recommendations in a table named `index_advisor_lo You can query the `index_advisor_log` table at the psql command line. This example shows the `index_advisor_log` table entries resulting from two Index Advisor sessions. Each session contains two queries and can be identified in the table by a different `backend_pid` value. For each session, Index Advisor generated two index recommendations. -```text +```sql edb=# SELECT * FROM index_advisor_log; +__OUTPUT__ reloid | relname | attrs | benefit | index_size | backend_pid | timestamp ---------+---------+-------+---------+------------+-------------+------------ ---------------------- @@ -82,7 +84,7 @@ edb=# SELECT * FROM index_advisor_log; Index Advisor added the first two rows to the table after analyzing the following two queries executed by the `pg_advise_index` utility: -```text +```sql SELECT * FROM t WHERE a = 500; SELECT * FROM t WHERE b < 1000; ``` @@ -95,8 +97,9 @@ The value of `2` in column `attrs` in the second row indicates that the hypothet Index Advisor added the last two rows to the table after analyzing the following two queries executed at the psql command line: -```text +```sql edb=# EXPLAIN SELECT * FROM t WHERE a < 10000; +__OUTPUT__ QUERY PLAN ------------------------------------------------------------------------------ ---------------- @@ -108,8 +111,10 @@ Result (cost=0.00..337.10 rows=10105 width=8) rows=10105 width=8) Index Cond: (a < 10000) (6 rows) - +``` +```sql edb=# EXPLAIN SELECT * FROM t WHERE a = 100; +__OUTPUT__ QUERY PLAN ------------------------------------------------------------------------------ ---------- @@ -131,7 +136,7 @@ benefit = (normal execution cost) - (execution cost with hypothetical index) The value of the `benefit` column for the last row of the `index_advisor_log` table shown in the example is calculated using the query plan for the following SQL statement: -```text +```sql EXPLAIN SELECT * FROM t WHERE a = 100; ``` @@ -143,7 +148,7 @@ benefit = (Seq Scan on t cost) - (Index Scan using ) The benefit is added to the table: -```text +```sql benefit = 1693.00 - 8.28 benefit = 1684.72 @@ -155,14 +160,15 @@ You can delete rows from the `index_advisor_log` table when you no longer need t The `index_recommendations` view contains the calculated metrics and the `CREATE INDEX` statements to create the recommended indexes for all sessions whose results are currently in the `index_advisor_log` table. You can display the results of all stored Index Advisor sessions by querying the `index_recommendations` view: -```text +```sql SELECT * FROM index_recommendations; ``` Using the example shown in [`Querying the index_advisor_log table`](#querying-the-index_advisor_log-table), the `index_recommendations` view displays the following: -```text +```sql edb=# SELECT * FROM index_recommendations; +__OUTPUT__ backend_pid | show_index_recommendations -------------+--------------------------------------------------------------- ------------------------------ @@ -187,7 +193,8 @@ gain = SUM(benefit of each query) / MAX(index size of all queries) So, for example, using the following query results from the process with a `backend_pid` of `3506`: -```text +```sql +__OUTPUT__ reloid | relname | attrs | benefit | index_size | backend_pid | timestamp ---------+---------+-------+---------+------------+-------------+------------ ---------------------- @@ -199,7 +206,8 @@ So, for example, using the following query results from the process with a `back The metrics displayed from the `index_recommendations` view for `backend_pid 3506` are: -```text +```sql +__OUTPUT__ backend_pid | show_index_recommendations -------------+--------------------------------------------------------------- ------------------------------ diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/05_index_advisor_limitations.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/05_index_advisor_limitations.mdx index f36619ca2a8..a82e52271fe 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/05_index_advisor_limitations.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/02_index_advisor/05_index_advisor_limitations.mdx @@ -14,6 +14,6 @@ Suppose you're restoring a `pg_dump` backup file that includes the `index_adviso If you need to display the recommendations made prior to the backup, you can replace the old OIDs in the `reloid` column of the `index_advisor_log` table with the new OIDs of the referenced tables using the SQL `UPDATE` statement: -```text +```sql UPDATE index_advisor_log SET reloid = new_oid WHERE reloid = old_oid; ``` diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/03_sql_profiler.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/03_sql_profiler.mdx index 6520ba6910e..c8517f50c63 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/03_sql_profiler.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/03_sql_profiler.mdx @@ -33,13 +33,13 @@ Modify the `postgresql.conf` parameter file for the instance to include the SQL For Linux installations, the parameter value should include: -```text +```shell $libdir/sql-profiler ``` On Windows, the parameter value should include: -```text +```shell $libdir\sql-profiler.dll ``` @@ -49,7 +49,7 @@ The SQL Profiler installation program places a SQL script (named `sql-profiler.s On Linux: -```text +```sql /usr/edb/as14/share/contrib/ ``` @@ -63,7 +63,7 @@ Use the `psql` command line interface to run the `sql-profiler.sql` script in th The following command uses the `psql` command line to invoke the `sql-profiler.sql` script on a Linux system: -```text +```shell $ /usr/edb/as14/bin/psql -U user_name database_name < /usr/edb/as14/share/contrib/sql-profiler.sql ``` diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/04_pgsnmpd.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/04_pgsnmpd.mdx index 33901ebd344..4ff75e6d48b 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/04_pgsnmpd.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/04_pgsnmpd.mdx @@ -12,7 +12,7 @@ title: "pgsnmpd" After installing EDB Postgres Advanced Server, you must update the `LD_LIBRARY_PATH` variable. Use the command: -```text +```shell $ export LD_LIBRARY_PATH=/usr/edb/as14/lib:$LD_LIBRARY_PATH ``` @@ -34,7 +34,7 @@ net-snmp is an open-source package available from: To use the snmpconf configuration file wizard, download and install net-snmp. When the installation completes, open a command line and enter: -```text +```shell snmpconf ``` @@ -56,7 +56,7 @@ Error opening specified endpoint "udp:161". You can specify an alternate listener port by adding the following line to your `snmpd.conf` file: -```text +```shell agentaddress $host_address:2000 ``` @@ -64,7 +64,7 @@ The example instructs `pgsnmpd` to listen on UDP port `2000`, where `$host_addre Before invoking `pgsnmpd`, you must create the `pgsnmpd` schema and set the search path to create tables in the `pgsnmpd` schema using the following commands: -```text +```sql CREATE SCHEMA pgsnmpd; SET search_path = pgsnmpd; \i pgsnmpd.sql @@ -74,7 +74,7 @@ SET search_path = pgsnmpd; Ensure that an instance of EDB Postgres Advanced Server is up and running (`pgsnmpd` connects to this server). Open a command line and assume superuser privileges, before invoking pgsnmpd with a command that takes the following form: -```text +```sql POSTGRES_INSTALL_HOME/bin/pgsnmpd -b -c POSTGRES_INSTALL_HOME/share/snmpd.conf -C "user=enterprisedb dbname=edb password=safe_password @@ -93,7 +93,7 @@ Include connection information for your installation of EDB Postgres Advanced Se Include the `--help` option when invoking the `pgsnmpd` utility to view other `pgsnmpd` command line options: -```text +```shell pgsnmpd --help Version PGSQL-SNMP-Ver1.0 usage: pgsnmpd [-s] [-b] [-c FILE ] [-x address ] [-g] [-C "Connect String"] @@ -110,7 +110,7 @@ pgsnmpd --help You can use `net-snmp` commands to query the `pgsnmpd` service. For example: -```text +```shell snmpgetnext -v 2c -c public localhost .1.3.6.1.4.1.5432.1.4.2.1.1.0 ``` diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/02_selecting_sql_statements_to_audit.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/02_selecting_sql_statements_to_audit.mdx index 509bde68f03..f458af17c9e 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/02_selecting_sql_statements_to_audit.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/02_selecting_sql_statements_to_audit.mdx @@ -6,7 +6,7 @@ title: "Selecting SQL statements to audit" The `edb_audit_statement` permits inclusion of one or more comma-separated values to control the SQL statements to audit. The following is the general format: -```text +```ini edb_audit_statement = 'value_1[, value_2]...' ``` @@ -137,7 +137,7 @@ Use the following syntax to specify an `edb_audit_statement` parameter value for In this example, `edb_audit_connect` and `edb_audit_statement` are set with the following non-default values: -```text +```ini logging_collector = 'on' edb_audit_connect = 'all' edb_audit_statement = 'create, alter, error' @@ -147,24 +147,28 @@ Thus, only SQL statements invoked by the `CREATE` and `ALTER` commands are audit The following is the database session that occurs: -```text +```sql $ psql edb enterprisedb Password for user enterprisedb: psql.bin (14.0.0) Type "help" for help. edb=# SHOW edb_audit_connect; +__OUTPUT__ edb_audit_connect ------------------- all (1 row) - +``` +```sql edb=# SHOW edb_audit_statement; +__OUTPUT__ edb_audit_statement ---------------------- create, alter, error (1 row) - +``` +```sql edb=# CREATE ROLE adminuser; CREATE ROLE edb=# ALTER ROLE adminuser WITH LOGIN, SUPERUSER, PASSWORD 'password'; @@ -266,7 +270,7 @@ There's no `edb_audit_statement` setting that results in auditing successfully p In this example, `edb_audit_connect` and `edb_audit_statement` are set with the following non-default values: -```text +```ini logging_collector = 'on' edb_audit_connect = 'all' edb_audit_statement = 'create view,create materialized view,create sequence,grant' @@ -276,24 +280,28 @@ Thus, only SQL statements invoked by the `CREATE VIEW`, `CREATE MATERIALIZED VIE The following is the database session that occurs: -```text +```sql $ psql auditdb adminuser Password for user adminuser: psql.bin (14.0.0) Type "help" for help. auditdb=# SHOW edb_audit_connect; +__OUTPUT__ edb_audit_connect ------------------- all (1 row) - +``` +```sql auditdb=# SHOW edb_audit_statement; +__OUTPUT__ edb_audit_statement ------------------------------------------------------------ create view,create materialized view,create sequence,grant (1 row) - +``` +```sql auditdb=# SET search_path TO edb; SET auditdb=# CREATE TABLE emp ( @@ -363,7 +371,7 @@ The `CREATE SEQUENCE` and `GRANT` statements are audited because those values ar In this example, `edb_audit_connect` and `edb_audit_statement` are set with the following non-default values: -```text +```ini logging_collector = 'on' edb_audit_connect = 'all' edb_audit_statement = 'none' @@ -371,7 +379,7 @@ edb_audit_statement = 'none' The session for users who connect as `ADMIN` or `SYSDBA` can be fully audited. An admin user is connected to a database `auditdb` as `ADMINUSER`. The following `ALTER USER` command specifies to audit `ADMINUSER`. -```text +```sql ALTER USER adminuser SET edb_audit_statement = "all"; ``` @@ -379,24 +387,28 @@ Setting the `edb_audit_statement` parameter to `all` allows auditing of all of t The following is the database session that occurs: -```text +```sql $ psql auditdb adminuser Password for user adminuser: psql.bin (14.0.0) Type "help" for help. auditdb=# SHOW edb_audit_connect; +__OUTPUT__ edb_audit_connect ------------------- all (1 row) - +``` +```sql auditdb=# SHOW edb_audit_statement; +__OUTPUT__ edb_audit_statement --------------------- all (1 row) - +``` +```sql auditdb=# SET search_path TO edb; SET auditdb=> CREATE TABLE dept @@ -413,13 +425,15 @@ INSERT 0 1 auditdb=> UPDATE dept SET loc = 'BEDFORD' WHERE deptno = 20; UPDATE 1 auditdb=> SELECT * FROM dept; +__OUTPUT__ deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK 30 | SALES | CHICAGO 20 | RESEARCH | BEDFORD (3 rows) - +``` +```sql auditdb=> DELETE FROM emp WHERE deptno = 40; ERROR: relation "emp" does not exist LINE 1: DELETE FROM emp WHERE deptno = 40; @@ -427,6 +441,7 @@ LINE 1: DELETE FROM emp WHERE deptno = 40; auditdb=> DELETE FROM dept WHERE deptno = 10; DELETE 1 auditdb=> SELECT * FROM dept; +__OUTPUT__ deptno | dname | loc --------+----------+--------- 30 | SALES | CHICAGO @@ -498,7 +513,7 @@ eb3a,14,"idle",2021-06-23 06:08:59 IST,4/29,0,AUDIT,00000,"statement: SELECT * F In this example, `edb_audit_connect` and `edb_audit_statement` are set with the following non-default values: -```text +```ini logging_collector = 'on' edb_audit_connect = 'all' edb_audit_statement = 'all' @@ -506,7 +521,7 @@ edb_audit_statement = 'all' The audit session for a user `carol` can be fully blocked by the database administrators using the `ALTER USER` command: -```text +```sql ALTER USER carol SET edb_audit_statement = "none"; ``` @@ -515,24 +530,28 @@ ALTER USER carol SET edb_audit_statement = "none"; The following is the database session that occurs: -```text +```sql $ psql auditdb carol Password for user carol: psql.bin (14.0.0) Type "help" for help. auditdb=# SHOW edb_audit_connect; +__OUTPUT__ edb_audit_connect ------------------- all (1 row) - +``` +```sql auditdb=# SHOW edb_audit_statement; +__OUTPUT__ edb_audit_statement --------------------- none (1 row) - +``` +```sql auditdb=# SET search_path TO edb; SET auditdb=> CREATE TABLE salgrade @@ -573,7 +592,7 @@ Use the following syntax to specify an `edb_audit_statement` parameter value for In this example, `edb_audit_connect` and `edb_audit_statement` are set with the following non-default values: -```text +```ini logging_collector = 'on' edb_audit_connect = 'all' edb_audit_statement = 'UPDATE, DELETE, error' @@ -583,24 +602,28 @@ Thus, only SQL statements invoked by the `UPDATE` and `DELETE` commands are audi The following is the database session that occurs: -```text +```sql $ psql auditdb adminuser Password for user adminuser: psql.bin (14.0.0) Type "help" for help. auditdb=# SHOW edb_audit_connect; +__OUTPUT__ edb_audit_connect ------------------- all (1 row) - +``` +```sql auditdb=# SHOW edb_audit_statement; +__OUTPUT__ edb_audit_statement ----------------------- UPDATE, DELETE, error (1 row) - +``` +```sql auditdb=# SET search_path TO edb; SET auditdb=# INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK'); @@ -625,6 +648,7 @@ INSERT 0 1 auditdb=# UPDATE dept SET loc = 'BEDFORD' WHERE deptno = 40; UPDATE 1 auditdb=# SELECT * FROM dept; +__OUTPUT__ deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK @@ -632,7 +656,8 @@ auditdb=# SELECT * FROM dept; 30 | SALES | CHICAGO 40 | OPERATIONS | BEDFORD (4 rows) - +``` +```sql auditdb=# DELETE FROM emp WHERE deptno = 10; DELETE 3 auditdb=# TRUNCATE employee; diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/03_enabling_audit_logging.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/03_enabling_audit_logging.mdx index d6a8c43c95a..481a775ab61 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/03_enabling_audit_logging.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/03_enabling_audit_logging.mdx @@ -26,7 +26,7 @@ The following are examples of this technique. The database cluster is established with `edb_audit_statement` set to `all` as shown in its `postgresql.conf` file: -```text +```ini logging_collector = 'on' edb_audit_statement = 'all' # Statement type to be audited: # none, dml, insert, update, delete, truncate, @@ -43,18 +43,20 @@ A database and role are established with the following settings for the `edb_aud The following shows creating and altering the database and role: -```text +```sql $ psql edb enterprisedb Password for user enterprisedb: psql.bin (14.0.0) Type "help" for help. edb=# SHOW edb_audit_statement; +__OUTPUT__ edb_audit_statement --------------------- all (1 row) - +``` +```sql edb=# CREATE DATABASE auditdb; CREATE DATABASE edb=# ALTER DATABASE auditdb SET edb_audit_statement TO 'ddl, insert, update, delete'; @@ -73,18 +75,20 @@ The following shows the changes made and the resulting audit log file for three Only `ddl`, `insert`, `update`, and `delete` statements are audited: -```text +```sql $ psql auditdb enterprisedb Password for user enterprisedb: psql.bin (14.0.0) Type "help" for help. auditdb=# SHOW edb_audit_statement; +__OUTPUT__ edb_audit_statement ----------------------------- ddl, insert, update, delete (1 row) - +``` +```sql auditdb=# CREATE TABLE audit_tbl (f1 INTEGER PRIMARY KEY, f2 TEXT); CREATE TABLE auditdb=# INSERT INTO audit_tbl VALUES (1, 'Row 1'); @@ -92,11 +96,13 @@ INSERT 0 1 auditdb=# UPDATE audit_tbl SET f2 = 'Row A' WHERE f1 = 1; UPDATE 1 auditdb=# SELECT * FROM audit_tbl; <== Should not be audited +__OUTPUT__ f1 | f2 ----+------- 1 | Row A (1 row) - +``` +```sql auditdb=# TRUNCATE audit_tbl; <== Should not be audited TRUNCATE TABLE ``` @@ -121,18 +127,20 @@ audit_tbl SET f2 = 'Row A' WHERE f1 = 1;",,,,,,,,,"psql","client backend","UPDAT Only `select`, `truncate`, and `set` statements are audited: -```text +```sql $ psql edb admin Password for user admin: psql.bin (14.0.0) Type "help" for help. edb=# SHOW edb_audit_statement; +__OUTPUT__ edb_audit_statement ----------------------- select, truncate, set (1 row) - +``` +```sql edb=# SET default_with_rowids TO TRUE; SET @@ -141,11 +149,13 @@ CREATE TABLE edb=# INSERT INTO edb_tbl VALUES (1, 'Row 1'); <== Should not be audited INSERT 0 1 edb=# SELECT * FROM edb_tbl; +__OUTPUT__ f1 | f2 ----+------- 1 | Row 1 (1 row) - +``` +```sql edb=# TRUNCATE edb_tbl; TRUNCATE TABLE ``` @@ -182,28 +192,32 @@ audit_tbl SET f2 = 'Row A' WHERE f1 = 1;",,,,,,,,,"psql","client backend","UPDAT Only `create table`, `insert`, and `update` statements are audited: -```text +```sql $ psql auditdb admin Password for user admin: psql.bin (14.0.0) Type "help" for help. auditdb=# SHOW edb_audit_statement; +__OUTPUT__ edb_audit_statement ------------------------------ create table, insert, update (1 row) - +``` +```sql auditdb=# CREATE TABLE audit_tbl_2 (f1 INTEGER PRIMARY KEY, f2 TEXT); CREATE TABLE auditdb=# INSERT INTO audit_tbl_2 VALUES (1, 'Row 1'); INSERT 0 1 auditdb=# SELECT * FROM audit_tbl_2; <== Should not be audited +__OUTPUT__ f1 | f2 ----+------- 1 | Row 1 (1 row) - +``` +```sql auditdb=# TRUNCATE audit_tbl_2; <== Should not be audited TRUNCATE TABLE ``` diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx index dce455fd3d3..ac9c0806485 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx @@ -53,7 +53,7 @@ The following examples are generated in the CSV and XML formats. The non-default audit settings in the `postgresql.conf` file are as follows: -```text +```ini logging_collector = 'on' edb_audit = 'csv' edb_audit_connect = 'all' @@ -66,7 +66,7 @@ The `edb_audit parameter` is changed to `xml` when generating the XML format. The following is the audited session: -```Text +```sql $ psql edb enterprisedb Password for user enterprisedb: psql.bin (14.0.0) @@ -91,6 +91,7 @@ LINE 1: UPDATE department SET loc = 'BOSTON' WHERE deptno = 10; edb=# UPDATE dept SET loc = 'BOSTON' WHERE deptno = 10; UPDATE 1 edb=# SELECT * FROM dept; +__OUTPUT__ deptno | dname | loc --------+------------+-------- 10 | ACCOUNTING | BOSTON @@ -174,7 +175,7 @@ host=[local]",,,,,,,,,"psql","client backend",,0,"","edbaudit","disconnect" The following is the XML format of the audit log file. (The output was formatted for visual clarity.) -```text +```xml ; ``` @@ -61,7 +61,7 @@ The name of the resource group. The following example results in the creation of three resource groups named `resgrp_a`, `resgrp_b`, and `resgrp_c`. -```text +```sql edb=# CREATE RESOURCE GROUP resgrp_a; CREATE RESOURCE GROUP edb=# CREATE RESOURCE GROUP resgrp_b; @@ -72,8 +72,9 @@ CREATE RESOURCE GROUP The following query shows the entries for the resource groups in the `edb_resource_group` catalog. -```text +```sql edb=# SELECT * FROM edb_resource_group; +__OUTPUT__ rgrpname | rgrpcpuratelimit | rgrpdirtyratelimit -----------+------------------+-------------------- resgrp_a | 0 | 0 @@ -88,20 +89,20 @@ Use the `ALTER RESOURCE GROUP` command to change the attributes of an existing r The first form renames the resource group: -```text +```sql ALTER RESOURCE GROUP RENAME TO ; ``` The second form assigns a resource type to the resource group: -```text +```sql ALTER RESOURCE GROUP SET { TO | = } { | DEFAULT }; ``` The third form resets the assignment of a resource type to its default within the group: -```text +```sql ALTER RESOURCE GROUP RESET ; ``` @@ -139,7 +140,7 @@ When `value` is specified, the literal value to be assigned to `resource_type`. The following are examples of the `ALTER RESOURCE GROUP` command. -```text +```sql edb=# ALTER RESOURCE GROUP resgrp_a RENAME TO newgrp; ALTER RESOURCE GROUP edb=# ALTER RESOURCE GROUP resgrp_b SET cpu_rate_limit = .5; @@ -152,8 +153,9 @@ ALTER RESOURCE GROUP The following query shows the results of the `ALTER RESOURCE GROUP` commands to the entries in the `edb_resource_group` catalog. -```text +```sql edb=# SELECT * FROM edb_resource_group; +__OUTPUT__ rgrpname | rgrpcpuratelimit | rgrpdirtyratelimit -----------+------------------+-------------------- newgrp | 0 | 0 @@ -166,7 +168,7 @@ edb=# SELECT * FROM edb_resource_group; Use the `DROP RESOURCE GROUP` command to remove a resource group. -```text +```sql DROP RESOURCE GROUP [ IF EXISTS ] ; ``` @@ -190,7 +192,7 @@ Don't throw an error if the resource group does not exist. A notice is issued in The following example removes resource group `newgrp`. -```text +```sql edb=# DROP RESOURCE GROUP newgrp; DROP RESOURCE GROUP ``` @@ -199,10 +201,11 @@ DROP RESOURCE GROUP Use the `SET edb_resource_group TO group_name` command to assign the current process to a specified resource group as shown by the following. -```text +```sql edb=# SET edb_resource_group TO resgrp_b; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- resgrp_b @@ -223,7 +226,7 @@ A default resource group can be assigned to a database by the `ALTER DATABASE .. The entire database server instance can be assigned a default resource group by setting the `edb_resource_group` configuration parameter in the `postgresql.conf` file as shown by the following. -```text +```ini # - EDB Resource Manager - #edb_max_resource_groups = 16 # 0-65536 (change requires restart) edb_resource_group = 'resgrp_b' @@ -235,10 +238,11 @@ A change to `edb_resource_group` in the `postgresql.conf` file requires a config Set `edb_resource_group` to `DEFAULT` or use `RESET edb_resource_group` to remove the current process from a resource group as shown by the following. -```text +```sql edb=# SET edb_resource_group TO DEFAULT; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- (1 row) @@ -268,8 +272,9 @@ The columns in `edb_all_resource_groups` are the following: The following shows `edb_all_resource_groups` when resource group `resgrp_a` contains no active processes, resource group `resgrp_b` contains two active processes, and resource group `resgrp_c` contains one active process. -```text +```sql edb=# SELECT * FROM edb_all_resource_groups ORDER BY group_name; +__OUTPUT__ -[ RECORD 1 ]-----------------+------------------ group_name | resgrp_a active_processes | 0 @@ -295,8 +300,9 @@ edb=# SELECT * FROM edb_all_resource_groups ORDER BY group_name; The CPU rate limit and dirty rate limit settings that are assigned to these resource groups are as follows. -```text +```sql edb=# SELECT * FROM edb_resource_group; +__OUTPUT__ rgrpname | rgrpcpuratelimit | rgrpdirtyratelimit -----------+------------------+-------------------- resgrp_a | 0.5 | 12288 @@ -327,7 +333,7 @@ The `ALTER RESOURCE GROUP` command with the `SET cpu_rate_limit` clause is used In the following example the CPU usage limit is set to 50% for `resgrp_a`, 40% for `resgrp_b` and 30% for `resgrp_c`. This means that the combined CPU usage of all processes assigned to `resgrp_a` is maintained at approximately 50%. Similarly, for all processes in `resgrp_b`, the combined CPU usage is kept to approximately 40%, etc. -```text +```sql edb=# ALTER RESOURCE GROUP resgrp_a SET cpu_rate_limit TO .5; ALTER RESOURCE GROUP edb=# ALTER RESOURCE GROUP resgrp_b SET cpu_rate_limit TO .4; @@ -338,8 +344,9 @@ ALTER RESOURCE GROUP The following query shows the settings of `cpu_rate_limit` in the catalog. -```text +```sql edb=# SELECT rgrpname, rgrpcpuratelimit FROM edb_resource_group; +__OUTPUT__ rgrpname | rgrpcpuratelimit ----------+------------------ resgrp_a | 0.5 @@ -358,10 +365,11 @@ The resource groups with the CPU rate limit settings shown in the previous query The following shows that the current process is set to use resource group `resgrp_b`. The factorial calculation is then started. -```text +```sql edb=# SET edb_resource_group TO resgrp_b; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- resgrp_b @@ -371,7 +379,7 @@ edb=# SELECT 20000!; In a second session, the Linux `top` command is used to display the CPU usage as shown under the `%CPU` column. The following is a snapshot at an arbitrary point in time as the `top` command output periodically changes. -```text +```shell $ top top - 16:37:03 up 4:15, 7 users, load average: 0.49, 0.20, 0.38 Tasks: 202 total, 1 running, 201 sleeping, 0 stopped, 0 zombie @@ -392,10 +400,11 @@ The `psql` session performing the factorial calculation is shown by the row wher By contrast, if the `psql` session is removed from the resource group and the factorial calculation is performed again, the CPU usage is much higher. -```text +```sql edb=# SET edb_resource_group TO DEFAULT; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- @@ -406,7 +415,7 @@ edb=# SELECT 20000!; Under the `%CPU` column for `edb-postgres`, the CPU usage is now 93.6, which is significantly higher than the 39.9 when the process was part of the resource group. -```text +```shell $ top top - 16:43:03 up 4:21, 7 users, load average: 0.66, 0.33, 0.37 Tasks: 202 total, 5 running, 197 sleeping, 0 stopped, 0 zombie @@ -431,10 +440,11 @@ The factorial calculation is performed simultaneously in two separate `psql` ses **Session 1:** -```text +```sql edb=# SET edb_resource_group TO resgrp_b; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- resgrp_b @@ -445,10 +455,11 @@ edb=# SELECT 20000!; **Session 2:** -```text +```sql edb=# SET edb_resource_group TO resgrp_b; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- resgrp_b @@ -459,7 +470,7 @@ edb=# SELECT 20000!; A third session monitors the CPU usage. -```text +```shell $ top top - 16:53:03 up 4:31, 7 users, load average: 0.31, 0.19, 0.27 Tasks: 202 total, 1 running, 201 sleeping, 0 stopped, 0 zombie @@ -481,7 +492,7 @@ There are now two processes named `edb-postgres` with `%CPU` values of 19.9 and The following command sequence displays the sum of all `edb-postgres` processes sampled over half second time intervals. This shows how the total CPU usage of the processes in the resource group changes over time as EDB Resource Manager throttles the processes to keep the total resource group CPU usage near 40%. -```text +```shell $ while [[ 1 -eq 1 ]]; do top -d0.5 -b -n2 | grep edb-postgres | awk '{ SUM += $9} END { print SUM / 2 }'; done 37.2 @@ -508,10 +519,11 @@ In this example, two additional `psql` sessions are used along with the previous **Session 3:** -```text +```sql edb=# SET edb_resource_group TO resgrp_c; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- resgrp_c @@ -522,10 +534,11 @@ edb=# SELECT 20000!; **Session 4:** -```text +```sql edb=# SET edb_resource_group TO resgrp_c; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- resgrp_c @@ -535,7 +548,7 @@ edb=# SELECT 20000!; The `top` command displays the following output. -```text +```shell $ top top - 17:45:09 up 5:23, 8 users, load average: 0.47, 0.17, 0.26 Tasks: 203 total, 4 running, 199 sleeping, 0 stopped, 0 zombie @@ -556,7 +569,7 @@ The two resource groups in use have CPU usage limits of 40% and 30%. The sum of The sum of the CPU usage limits of the two resource groups to which these processes belong is 70%. The following output shows that the sum of the four processes borders around 70%. -```text +```shell $ while [[ 1 -eq 1 ]]; do top -d0.5 -b -n2 | grep edb-postgres | awk '{ SUM += $9} END { print SUM / 2 }'; done 61.8 @@ -579,7 +592,7 @@ $ while [[ 1 -eq 1 ]]; do top -d0.5 -b -n2 | grep edb-postgres | awk '{ SUM By contrast, if three sessions are processing where two sessions remain in `resgrp_b`, but the third session does not belong to any resource group, the `top` command shows the following output. -```text +```shell $ top top - 17:24:55 up 5:03, 7 users, load average: 1.00, 0.41, 0.38 Tasks: 199 total, 3 running, 196 sleeping, 0 stopped, 0 zombie @@ -599,7 +612,7 @@ The second and third `edb-postgres` processes belonging to the resource group wh Likewise, the following output shows the sum of all three sessions is around 95% since one of the sessions has no set limit on its CPU usage. -```text +```shell $ while [[ 1 -eq 1 ]]; do top -d0.5 -b -n2 | grep edb-postgres | awk '{ SUM += $9} END { print SUM / 2 }'; done 96 @@ -641,7 +654,7 @@ The `ALTER RESOURCE GROUP` command with the `SET dirty_rate_limit` clause is use In the following example the dirty rate limit is set to 12288 kilobytes per second for `resgrp_a`, 6144 kilobytes per second for `resgrp_b` and 3072 kilobytes per second for `resgrp_c`. This means that the combined writing rate to the shared buffer of all processes assigned to `resgrp_a` is maintained at approximately 12288 kilobytes per second. Similarly, for all processes in `resgrp_b`, the combined writing rate to the shared buffer is kept to approximately 6144 kilobytes per second, etc. -```text +```sql edb=# ALTER RESOURCE GROUP resgrp_a SET dirty_rate_limit TO 12288; ALTER RESOURCE GROUP edb=# ALTER RESOURCE GROUP resgrp_b SET dirty_rate_limit TO 6144; @@ -652,8 +665,9 @@ ALTER RESOURCE GROUP The following query shows the settings of `dirty_rate_limit` in the catalog. -```text +```sql edb=# SELECT rgrpname, rgrpdirtyratelimit FROM edb_resource_group; +__OUTPUT__ rgrpname | rgrpdirtyratelimit -----------+-------------------- resgrp_a | 12288 @@ -666,7 +680,7 @@ Changing the `dirty_rate_limit` of a resource group not only affects new process To illustrate the effect of setting the dirty rate limit for resource groups, the following examples use the following table for intensive I/O operations. -```text +```sql CREATE TABLE t1 (c1 INTEGER, c2 CHARACTER(500)) WITH (FILLFACTOR = 10); ``` @@ -678,7 +692,7 @@ In order to use the `pg_stat_statements` module, perform the following steps. **Step 1:** In the `postgresql.conf` file, add `$libdir/pg_stat_statements` to the `shared_preload_libraries` configuration parameter as shown by the following. -```text +```ini shared_preload_libraries = '$libdir/dbms_pipe,$libdir/edb_gen,$libdir/pg_stat_statements' ``` @@ -686,7 +700,7 @@ shared_preload_libraries = '$libdir/dbms_pipe,$libdir/edb_gen,$libdir/pg_stat_st **Step 3:** Use the `CREATE EXTENSION` command to complete the creation of the `pg_stat_statements` module. -```text +```sql edb=# CREATE EXTENSION pg_stat_statements SCHEMA public; CREATE EXTENSION ``` @@ -703,18 +717,21 @@ The following sequence of commands shows the creation of table `t1`. The current Finally, the `INSERT` command generates a series of integers from 1 to 10,000 to populate the table, and dirty approximately 10,000 blocks. -```text +```sql edb=# CREATE TABLE t1 (c1 INTEGER, c2 CHARACTER(500)) WITH (FILLFACTOR = 10); CREATE TABLE edb=# SET edb_resource_group TO resgrp_b; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- resgrp_b (1 row) - +``` +```sql edb=# SELECT pg_stat_statements_reset(); +__OUTPUT__ pg_stat_statements_reset -------------------------- @@ -726,9 +743,10 @@ INSERT 0 10000 The following shows the results from the `INSERT` command. -```text +```sql edb=# SELECT query, rows, total_time, shared_blks_dirtied FROM pg_stat_statements; +__OUTPUT__ -[ RECORD 1 ]--------+-------------------------------------------------- query | INSERT INTO t1 VALUES (generate_series (?,?), ?); rows | 10000 @@ -746,16 +764,19 @@ Note that the actual dirty rate of 6072 kilobytes per second is close to the dir By contrast, if the steps are repeated again without the process belonging to any resource group, the dirty buffer rate is much higher. -```text +```sql edb=# CREATE TABLE t1 (c1 INTEGER, c2 CHARACTER(500)) WITH (FILLFACTOR = 10); CREATE TABLE edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- (1 row) - +``` +```sql edb=# SELECT pg_stat_statements_reset(); +__OUTPUT__ pg_stat_statements_reset -------------------------- @@ -767,9 +788,10 @@ INSERT 0 10000 The following shows the results from the `INSERT` command without the usage of a resource group. -```text +```sql edb=# SELECT query, rows, total_time, shared_blks_dirtied FROM pg_stat_statements; +__OUTPUT__ -[ RECORD 1 ]--------+-------------------------------------------------- query | INSERT INTO t1 VALUES (generate_series (?,?), ?); rows | 10000 @@ -797,12 +819,13 @@ For this example the inserts are performed simultaneously on two different table **Session 1:** -```text +```sql edb=# CREATE TABLE t1 (c1 INTEGER, c2 CHARACTER(500)) WITH (FILLFACTOR = 10); CREATE TABLE edb=# SET edb_resource_group TO resgrp_b; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- resgrp_b @@ -814,18 +837,21 @@ INSERT 0 10000 **Session 2:** -```text +```sql edb=# CREATE TABLE t2 (c1 INTEGER, c2 CHARACTER(500)) WITH (FILLFACTOR = 10); CREATE TABLE edb=# SET edb_resource_group TO resgrp_b; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- resgrp_b (1 row) - +``` +```sql edb=# SELECT pg_stat_statements_reset(); +__OUTPUT__ pg_stat_statements_reset -------------------------- (1 row) @@ -839,9 +865,10 @@ INSERT 0 10000 The following shows the results from the `INSERT` commands in the two sessions. `RECORD 3` shows the results from session 1. `RECORD 2` shows the results from session 2. -```text +```sql edb=# SELECT query, rows, total_time, shared_blks_dirtied FROM pg_stat_statements; +__OUTPUT__ -[ RECORD 1 ]--------+-------------------------------------------------- query | SELECT pg_stat_statements_reset(); rows | 1 @@ -885,12 +912,13 @@ Sessions 1 and 2 are repeated as illustrated in the prior example using resource **Session 3:** -```text +```sql edb=# CREATE TABLE t3 (c1 INTEGER, c2 CHARACTER(500)) WITH (FILLFACTOR = 10); CREATE TABLE edb=# SET edb_resource_group TO resgrp_c; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- @@ -904,18 +932,21 @@ INSERT 0 10000 **Session 4:** -```text +```sql edb=# CREATE TABLE t4 (c1 INTEGER, c2 CHARACTER(500)) WITH (FILLFACTOR = 10); CREATE TABLE edb=# SET edb_resource_group TO resgrp_c; SET edb=# SHOW edb_resource_group; +__OUTPUT__ edb_resource_group -------------------- resgrp_c (1 row) - +``` +```sql edb=# SELECT pg_stat_statements_reset(); +__OUTPUT__ pg_stat_statements_reset -------------------------- @@ -934,9 +965,10 @@ The following shows the results from the `INSERT` commands in the four sessions. `RECORD 4` shows the results from session 3. `RECORD 5` shows the results from session 4. -```text +```sql edb=# SELECT query, rows, total_time, shared_blks_dirtied FROM pg_stat_statements; +__OUTPUT__ -[ RECORD 1 ]--------+-------------------------------------------------- query | SELECT pg_stat_statements_reset(); rows | 1 diff --git a/product_docs/docs/epas/15/epas_guide/11_libpq_c_library.mdx b/product_docs/docs/epas/15/epas_guide/11_libpq_c_library.mdx index 8041b9258c7..8f99e5eece4 100644 --- a/product_docs/docs/epas/15/epas_guide/11_libpq_c_library.mdx +++ b/product_docs/docs/epas/15/epas_guide/11_libpq_c_library.mdx @@ -45,7 +45,7 @@ The samples that follow don't include the error-handling code required in a real The following example shows an SPL function that returns a value of type `REFCURSOR`: -```text +```sql CREATE OR REPLACE FUNCTION getEmployees(p_deptno NUMERIC) RETURN REFCURSOR AS result REFCURSOR; @@ -60,7 +60,7 @@ This function expects a single parameter, `p_deptno`, and returns a `REFCURSOR` To call this function from a C client using libpq, you can use `PQexec()` and `PQgetvalue()`: -```text +```c #include #include #include "libpq-fe.h" @@ -155,7 +155,7 @@ fail(PGconn *conn, const char *msg) The code sample contains a line of code that calls the `getEmployees()` function, and returns a result set that contains all of the employees in department `10`: -```text +```sql result = PQexec(conn, "SELECT * FROM getEmployees(10)"); ``` @@ -165,7 +165,7 @@ Once you have the name of the cursor, you can use the SQL `FETCH` statement to r The output of this program is shown below: -```text +```sql -- employees -- 7782,CLARK,MANAGER,7839,09-JUN-81 00:00:00,2450.00,,10 7839,KING,PRESIDENT,,17-NOV-81 00:00:00,5000.00,,10 @@ -181,7 +181,7 @@ The next example returns two `REFCURSORs`: In this example, instead of returning a single `REFCURSOR`, the function returns a `SETOF REFCURSOR` (which means `0` or more `REFCURSORS`). One other important difference is that the libpq program should not expect a single `REFCURSOR` in the result set, but should expect two rows, each of which contains a single value (the first row contains the name of the `employees` cursor, and the second row contains the name of the `departments` cursor). -```text +```sql CREATE OR REPLACE FUNCTION getEmpsAndDepts(p_min NUMERIC, p_max NUMERIC) RETURN SETOF REFCURSOR AS @@ -200,7 +200,7 @@ END; As in the previous example, you can use `PQexec()` and `PQgetvalue()` to call the SPL function: -```text +```c #include #include #include "libpq-fe.h" @@ -295,7 +295,7 @@ fail(PGconn *conn, const char *msg) If you call `getEmpsAndDepts(20, 30)`, the server returns a cursor that contains all employees who work in department `20` or `30`, and a second cursor containing the description of departments `20` and `30`. -```text +```sql -- employees -- 7369,SMITH,CLERK,7902,17-DEC-80 00:00:00,800.00,,20 7499,ALLEN,SALESMAN,7698,20-FEB-81 00:00:00,1600.00,300.00,30 @@ -319,7 +319,7 @@ EDB Postgres Advanced Server's array binding functionality allows you to send an Perform bulk operations with a prepared statement; use the following function to prepare the statement: -```text +```c PGresult *PQprepare(PGconn *conn, const char *stmtName, const char *query, @@ -342,7 +342,7 @@ The following functions can be used to perform bulk operations: #### API definition -```text +```c PGresult *PQBulkStart(PGconn *conn, const char *Stmt_Name, unsigned int nCol, @@ -357,7 +357,7 @@ This function can be used more than once after `PQBulkStart()` to send multiple #### API definition -```text +```c PGresult *PQexecBulk(PGconn *conn, unsigned int nRows, const char *const * paramValues, @@ -370,7 +370,7 @@ This function completes the current bulk operation. You can use the prepared sta #### API definition -```text +```c PGresult *PQBulkFinish(PGconn *conn); ``` @@ -382,7 +382,7 @@ Specify a previously prepared statement in the place of stmtName. Commands that #### API definition -```text +```c PGresult *PQexecBulkPrepared(PGconn *conn, const char *stmtName, unsigned int nCols, @@ -396,7 +396,7 @@ PGresult *PQexecBulkPrepared(PGconn *conn, The following example uses `PGBulkStart`, `PQexecBulk`, and `PQBulkFinish`. -```text +```c void InsertDataUsingBulkStyle( PGconn *conn ) { PGresult *res; @@ -454,7 +454,7 @@ void InsertDataUsingBulkStyle( PGconn *conn ) The following example uses `PQexecBulkPrepared`. -```text +```c void InsertDataUsingBulkStyleCombinedVersion( PGconn *conn ) { PGresult *res; diff --git a/product_docs/docs/epas/15/epas_guide/12_debugger.mdx b/product_docs/docs/epas/15/epas_guide/12_debugger.mdx index ee2de641b64..344e56d6f3a 100644 --- a/product_docs/docs/epas/15/epas_guide/12_debugger.mdx +++ b/product_docs/docs/epas/15/epas_guide/12_debugger.mdx @@ -16,7 +16,7 @@ The Debugger gives developers and DBAs the ability to test and debug server-side The Debugger is integrated with *pgAdmin 4* and *EDB Postgres Enterprise Manager*. If you have installed EDB Postgres Advanced Server on a Windows host, pgAdmin 4 is automatically installed; the pgAdmin 4 icon is in the `Windows Start` menu. If your EDB Postgres Advanced Server host is on a CentOS or Linux system, you can use `yum` to install pgAdmin4. Open a command line, assume superuser privileges, and enter: -```text +```shell yum install edb-pgadmin4* ``` @@ -39,7 +39,7 @@ The following sections discuss the features and functionality of the Debugger us Before using the Debugger, edit the `postgresql.conf` file (located in the `data` subdirectory of your EDB Postgres Advanced Server home directory), adding `$libdir/plugin_debugger` to the libraries listed in the `shared_preload_libraries` configuration parameter: -```text +```ini shared_preload_libraries = '$libdir/dbms_pipe,$libdir/edb_gen,$libdir/plugin_debugger' ``` @@ -284,7 +284,7 @@ After you choose `Set Breakpoint`, the Debugger window opens and waits for an ap The PSQL client invokes the `select_emp` function (on which a global breakpoint has been set). -```text +```sql $ psql edb enterprisedb psql.bin (14.0.0, server 14.0.0) Type "help" for help. @@ -301,12 +301,13 @@ The `select_emp` function does not complete until you step through the program i You can now debug the program using any of the previously discussed operations such as step into, step over, and continue, or set local breakpoints. When you have stepped through execution of the program, the calling application (PSQL) regains control and the `select_emp` function completes execution and its output is displayed. -```text +```sql $ psql edb enterprisedb psql.bin (14.0.0, server 14.0.0) Type "help" for help. edb=# SELECT select_emp(7900); +__OUTPUT__ INFO: Number : 7900 INFO: Name : JAMES INFO: Hire Date : 12/03/1981 diff --git a/product_docs/docs/epas/15/epas_guide/13_performance_analysis_and_tuning.mdx b/product_docs/docs/epas/15/epas_guide/13_performance_analysis_and_tuning.mdx index 7519595276a..38321ddd772 100644 --- a/product_docs/docs/epas/15/epas_guide/13_performance_analysis_and_tuning.mdx +++ b/product_docs/docs/epas/15/epas_guide/13_performance_analysis_and_tuning.mdx @@ -71,7 +71,7 @@ The following describes the installation process on a Linux system. **Step 2:** To launch the worker, it must be registered in the `postgresql.conf` file using the `shared_preload_libraries` parameter, for example: -```text +```ini shared_preload_libraries = '$libdir/edb_wait_states' ``` @@ -79,7 +79,7 @@ shared_preload_libraries = '$libdir/edb_wait_states' **Step 4:** To review the data, create the following extension: -```text +```sql CREATE EXTENSION edb_wait_states; ``` @@ -91,7 +91,7 @@ The following describes the installation process on a Windows system. **Step 2:** To register the worker, modify the `postgresql.conf` file to include the wait states library in the `shared_preload_libraries` configuration parameter. The parameter value must include: -```text +```ini shared_preload_libraries = '$libdir/edb_wait_states.dll' ``` @@ -105,7 +105,7 @@ C:\Program Files\edb\as14\lib\ **Step 4:** To view the data, create the following extension: -```text +```sql CREATE EXTENSION edb_wait_states; ``` @@ -133,7 +133,7 @@ The syntax of each function is given in the following sections. !!! Note The examples shown in the following sections are based on the following three queries executed on four different sessions connected to different databases using different users, simultaneously: -```text +```sql SELECT schemaname FROM pg_tables, pg_sleep(15) WHERE schemaname <> 'pg_catalog'; /* ran on 2 sessions */ SELECT tablename FROM pg_tables, pg_sleep(10) WHERE schemaname <> @@ -146,7 +146,7 @@ SELECT tablename, schemaname FROM pg_tables, pg_sleep(10) WHERE schemaname This function is used to read the data collected by EWSBW. -```text +```sql edb_wait_states_data( IN start_ts timestamptz default '-infinity'::timestamptz, IN end_ts timestamptz default 'infinity'::timestamptz, @@ -165,14 +165,14 @@ This function can be used to find out the following: The queries running in the given duration (defined by `start_ts` and `end_ts`) in all the sessions, and the wait events, if any, they were waiting on. For example: -```text +```sql SELECT query, session_id, wait_event_type, wait_event FROM edb_wait_states_data(start_ts, end_ts); ``` The progress of a session within a given duration (that is, the queries run in a session (session_id = 100000) and the wait events the queries waited on). For example: -```text +```sql SELECT query, wait_event_type, wait_event FROM edb_wait_states_data(start_ts, end_ts) WHERE session_id = 100000; @@ -180,7 +180,7 @@ SELECT query, wait_event_type, wait_event The duration for which the samples are available. For example: -```text +```sql SELECT min(sample_time), max(sample_time) FROM edb_wait_states_data(); ``` @@ -221,8 +221,9 @@ The wait event the session (backend) is waiting on The following is a sample output from the `edb_wait_states_data()` function. -```text +```sql edb=# SELECT * FROM edb_wait_states_data(); +__OUTPUT__ -[ RECORD 1 ]----+------------------------------------------------------------------------- session_id | 4398 dbname | edb @@ -259,7 +260,7 @@ wait_event | PgSleep This function gives information about the queries sampled by EWSBW. -```text +```sql edb_wait_states_queries( IN start_ts timestamptz default '-infinity'::timestamptz, IN end_ts timestamptz default 'infinity'::timestamptz, @@ -276,7 +277,7 @@ This function returns all the queries in query files that overlap with the given In other words, the function may output queries that did not run in the given interval. To exactly know that the user should use `edb_wait_states_data()`. -```text +```sql SELECT query FROM edb_wait_states_queries(start_ts, end_ts); ``` @@ -292,8 +293,9 @@ Normalized query text The following is a sample output from the `edb_wait_states_queries()` function. -```text +```sql edb=# SELECT * FROM edb_wait_states_queries(); +__OUTPUT__ -[ RECORD 1 ]+----------------------------------------------------------------------------- query_id | 4292540138852956818 query | SELECT schemaname FROM pg_tables, pg_sleep($1) WHERE schemaname <> $2 @@ -315,7 +317,7 @@ ref_end_ts | 18-AUG-18 11:52:38.698793 -04:00 This function gives information about the sessions sampled by EWSBW. -```text +```sql edb_wait_states_sessions( IN start_ts timestamptz default '-infinity'::timestamptz, IN end_ts timestamptz default 'infinity'::timestamptz, @@ -329,7 +331,7 @@ edb_wait_states_sessions( This function can be used to identify the databases that were connected and/or which users started those sessions. For example: -```text +```sql SELECT dbname, username, session_id FROM edb_wait_states_sessions(); ``` @@ -352,8 +354,9 @@ Login user of the session The following is a sample output from the `edb_wait_states_sessions()` function. -```text +```sql edb=# SELECT * FROM edb_wait_states_sessions(); +__OUTPUT__ -[ RECORD 1 ]+--------------------------------- session_id | 4340 dbname | edb @@ -384,7 +387,7 @@ ref_end_ts | 18-AUG-18 11:52:38.698793 -04:00 This function gives information about wait events sampled by EWSBW. -```text +```sql edb_wait_states_samples( IN start_ts timestamptz default '-infinity'::timestamptz, IN end_ts timestamptz default 'infinity'::timestamptz, @@ -423,8 +426,9 @@ The wait event on which the session (backend) is waiting The following is a sample output from the `edb_wait_states_samples()` function. -```text +```sql edb=# SELECT * FROM edb_wait_states_samples(); +__OUTPUT__ -[ RECORD 1 ]----+--------------------------------- query_id | 4292540138852956818 session_id | 4340 @@ -462,7 +466,7 @@ wait_event | PgSleep The function deletes all the sampled data files (queries, sessions and wait event samples) that were created after `start_ts` and aged (rotated) before `end_ts`. -```text +```sql edb_wait_states_purge( IN start_ts timestamptz default '-infinity'::timestamptz, IN end_ts timestamptz default 'infinity'::timestamptz @@ -477,7 +481,7 @@ In order to know the duration for which the samples have been retained, use `edb The `$PGDATA/edb_wait_states` directory before running `edb_wait_states_purge()`: -```text +```shell [root@localhost data]# pwd /var/lib/edb/as14/data [root@localhost data]# ls -l edb_wait_states @@ -489,13 +493,15 @@ total 12 The `$PGDATA/edb_wait_states` directory after running `edb_wait_states_purge()`: -```text +```sql edb=# SELECT * FROM edb_wait_states_purge(); +__OUTPUT__ edb_wait_states_purge ----------------------- (1 row) - +``` +```shell [root@localhost data]# pwd /var/lib/edb/as14/data [root@localhost data]# ls -l edb_wait_states diff --git a/product_docs/docs/epas/15/epas_guide/14_edb_clone_schema.mdx b/product_docs/docs/epas/15/epas_guide/14_edb_clone_schema.mdx index 5cb9fff392e..51db470e4b7 100644 --- a/product_docs/docs/epas/15/epas_guide/14_edb_clone_schema.mdx +++ b/product_docs/docs/epas/15/epas_guide/14_edb_clone_schema.mdx @@ -84,7 +84,7 @@ Ensure that pgAgent is installed before creating the `pgagent` extension. On Lin The previously listed extensions can be installed by the following commands if they don't already exist: -```text +```sql CREATE EXTENSION postgres_fdw SCHEMA public; CREATE EXTENSION dblink SCHEMA public; CREATE EXTENSION adminpack; @@ -99,7 +99,7 @@ For more information about using the `CREATE EXTENSION` command, see the Postgre Modify the `postgresql.conf` file by adding `$libdir/parallel_clone` to the `shared_preload_libraries` configuration parameter as shown by the following example: -```text +```ini shared_preload_libraries = '$libdir/dbms_pipe,$libdir/dbms_aq,$libdir/parallel_clone' ``` @@ -109,7 +109,7 @@ shared_preload_libraries = '$libdir/dbms_pipe,$libdir/dbms_aq,$libdir/parallel_c **Step 4:** Connect to the database as a superuser and run the following command: -```text +```sql CREATE TRUSTED LANGUAGE plperl; ``` @@ -150,7 +150,7 @@ Status logging by the cloning functions creates log files in the directory speci The default location is `PGDATA/log` as shown by the following: -```text +```ini #log_directory = 'log' # directory where log files are written, # can be absolute or relative to PGDATA ``` @@ -171,7 +171,7 @@ These steps must be performed on any database to be used as the source or target **Step 1:** If you had previously installed an older version of the `edb_cloneschema` extension, then you must run the following command: -```text +```sql DROP EXTENSION parallel_clone CASCADE; ``` @@ -179,7 +179,7 @@ This command also drops the `edb_cloneschema` extension. **Step 2:** Install the extensions using the following commands: -```text +```sql CREATE EXTENSION parallel_clone SCHEMA public; CREATE EXTENSION edb_cloneschema; @@ -215,7 +215,7 @@ The database user for whom the user mapping is defined must be a superuser and t The following example creates the foreign server for the database containing the schema to be cloned, and to receive the cloned schema as well. -```text +```sql CREATE SERVER local_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS( host 'localhost', @@ -230,7 +230,7 @@ For more information about using the `CREATE SERVER` command, see the PostgreSQL The user mapping for this server is the following: -```text +```sql CREATE USER MAPPING FOR enterprisedb SERVER local_server OPTIONS ( user 'enterprisedb', @@ -244,8 +244,9 @@ For more information about using the `CREATE USER MAPPING` command, see the Post The following `psql` commands show the foreign server and user mapping: -```text +```sql edb=# \des+ +__OUTPUT__ List of foreign servers -[ RECORD 1 ]--------+---------------------------------------------- Name | local_server @@ -256,8 +257,10 @@ Type | Version | FDW options | (host 'localhost', port '5444', dbname 'edb') Description | - +``` +```sql edb=# \deu+ +__OUTPUT__ List of user mappings Server | User name | FDW options --------------+--------------+---------------------------------------------- @@ -289,7 +292,7 @@ The database user for whom the user mappings are defined must be a superuser and The following example creates the foreign server for the local, target database that is to receive the cloned schema. -```text +```sql CREATE SERVER tgt_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS( host 'localhost', @@ -300,7 +303,7 @@ CREATE SERVER tgt_server FOREIGN DATA WRAPPER postgres_fdw The user mapping for this server is the following: -```text +```sql CREATE USER MAPPING FOR enterprisedb SERVER tgt_server OPTIONS ( user 'tgtuser', @@ -310,7 +313,7 @@ CREATE USER MAPPING FOR enterprisedb SERVER tgt_server The following example creates the foreign server for the remote, source database that is to be the source for the cloned schema. -```text +```sql CREATE SERVER src_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS( host '192.168.2.28', @@ -321,7 +324,7 @@ CREATE SERVER src_server FOREIGN DATA WRAPPER postgres_fdw The user mapping for this server is the following: -```text +```sql CREATE USER MAPPING FOR enterprisedb SERVER src_server OPTIONS ( user 'srcuser', @@ -331,8 +334,9 @@ CREATE USER MAPPING FOR enterprisedb SERVER src_server The following `psql` commands show the foreign servers and user mappings: -```text +```sql tgtdb=# \des+ +__OUTPUT__ List of foreign servers -[ RECORD 1 ]--------+--------------------------------------------------- Name | src_server @@ -352,8 +356,10 @@ Type | Version | FDW options | (host 'localhost', port '5444', dbname 'tgtdb') Description | - +``` +```sql tgtdb=# \deu+ +__OUTPUT__ List of user mappings Server | User name | FDW options ------------+--------------+-------------------------------------------- @@ -369,7 +375,7 @@ In addition, database user `srcuser` with password `srcpassword` connects to `sr !!! Note Be sure the `pg_hba.conf` file of the database server running the source database `srcdb` has an appropriate entry permitting connection from the target server location (address `192.168.2.27` in the following example) connecting with the database user `srcuser` that was included in the user mapping for the foreign server `src_server` defining the source server and database. -```text +```shell # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only @@ -405,7 +411,7 @@ Note that pgAgent is provided as a component with EDB Postgres Advanced Server. The `localcopyschema` function copies a schema and its database objects within a local database specified within the `source_fdw` foreign server from the source schema to the specified target schema within the same database. -```text +```sql localcopyschema( TEXT, TEXT, @@ -472,16 +478,19 @@ The example is for the following environment: Before invoking the function, the connection is made by database user `enterprisedb` to database `edb`. -```text +```sql edb=# SET search_path TO "$user",public,edb_util; SET edb=# SHOW search_path; +__OUTPUT__ search_path --------------------------- "$user", public, edb_util (1 row) - +``` +```sql edb=# SELECT localcopyschema ('local_server','edb','edbcopy','clone_edb_edbcopy'); +__OUTPUT__ localcopyschema ----------------- t @@ -490,8 +499,9 @@ edb=# SELECT localcopyschema ('local_server','edb','edbcopy','clone_edb_edbcopy' The following displays the logging status using the `process_status_from_log` function: -```text +```sql edb=# SELECT process_status_from_log('clone_edb_edbcopy'); +__OUTPUT__ process_status_from_log ------------------------------------------------------------------------------------------------ (FINISH,"2017-06-29 11:07:36.830783-04",3855,INFO,"STAGE: FINAL","successfully cloned schema") @@ -500,10 +510,11 @@ edb=# SELECT process_status_from_log('clone_edb_edbcopy'); After the clone has completed, the following shows some of the database objects copied to the `edbcopy` schema: -```text +```sql edb=# SET search_path TO edbcopy; SET edb=# \dt+ +__OUTPUT__ List of relations Schema | Name | Type | Owner | Size | Description ---------+---------+-------+--------------+------------+------------- @@ -511,15 +522,19 @@ edb=# \dt+ edbcopy | emp | table | enterprisedb | 8192 bytes | edbcopy | jobhist | table | enterprisedb | 8192 bytes | (3 rows) - +``` +```sql edb=# \dv +__OUTPUT__ List of relations Schema | Name | Type | Owner ---------+----------+------+-------------- edbcopy | salesemp | view | enterprisedb (1 row) - +``` +```sql edb=# \di +__OUTPUT__ List of relations Schema | Name | Type | Owner | Table ---------+---------------+-------+--------------+--------- @@ -528,16 +543,20 @@ edb=# \di edbcopy | emp_pk | index | enterprisedb | emp edbcopy | jobhist_pk | index | enterprisedb | jobhist (4 rows) - +``` +```sql edb=# \ds +__OUTPUT__ List of relations Schema | Name | Type | Owner ---------+------------+----------+-------------- edbcopy | next_empno | sequence | enterprisedb (1 row) - +``` +```sql edb=# SELECT DISTINCT schema_name, name, type FROM user_source WHERE schema_name = 'EDBCOPY' ORDER BY type, name; +__OUTPUT__ schema_name | name | type -------------+--------------------------------+-------------- EDBCOPY | EMP_COMP | FUNCTION @@ -573,7 +592,7 @@ schema_name = 'EDBCOPY' ORDER BY type, name; The `localcopyschema_nb` function copies a schema and its database objects within a local database specified within the `source_fdw` foreign server from the source schema to the specified target schema within the same database, but in a non-blocking manner as a job submitted to pgAgent. -```text +```sql localcopyschema_nb( TEXT, TEXT, @@ -632,7 +651,7 @@ The same cloning operation is performed as the example in `localcopyschema`, but The following command can be used to observe if pgAgent is running on the appropriate local database: -```text +```shell [root@localhost ~]# ps -ef | grep pgagent root 4518 1 0 11:35 pts/1 00:00:00 pgagent -s /tmp/pgagent_edb_log hostaddr=127.0.0.1 port=5444 dbname=edb user=enterprisedb password=password @@ -641,7 +660,7 @@ root 4525 4399 0 11:35 pts/1 00:00:00 grep --color=auto pgagent If pgAgent is not running, it can be started as shown by the following. The `pgagent` program file is located in the `bin` subdirectory of the EDB Postgres Advanced Server installation directory. -```text +```shell [root@localhost bin]# ./pgagent -l 2 -s /tmp/pgagent_edb_log hostaddr=127.0.0.1 port=5444 dbname=edb user=enterprisedb password=password ``` @@ -651,8 +670,9 @@ dbname=edb user=enterprisedb password=password The `localcopyschema_nb` function returns the job ID shown as `4` in the example. -```text +```sql edb=# SELECT edb_util.localcopyschema_nb ('local_server','edb','edbcopy','clone_edb_edbcopy'); +__OUTPUT__ localcopyschema_nb -------------------- 4 @@ -661,8 +681,9 @@ edb=# SELECT edb_util.localcopyschema_nb ('local_server','edb','edbcopy','clone_ The following displays the job status: -```text +```sql edb=# SELECT edb_util.process_status_from_log('clone_edb_edbcopy'); +__OUTPUT__ process_status_from_log --------------------------------------------------------------------------------------------------- (FINISH,"29-JUN-17 11:39:11.620093 -04:00",4618,INFO,"STAGE: FINAL","successfully cloned schema") @@ -671,8 +692,9 @@ edb=# SELECT edb_util.process_status_from_log('clone_edb_edbcopy'); The following removes the pgAgent job: -```text +```sql edb=# SELECT edb_util.remove_log_file_and_job (4); +__OUTPUT__ remove_log_file_and_job ------------------------- t @@ -685,7 +707,7 @@ edb=# SELECT edb_util.remove_log_file_and_job (4); The `remotecopyschema` function copies a schema and its database objects from a source schema in the remote source database specified within the `source_fdw` foreign server to a target schema in the local target database specified within the `target_fdw` foreign server. -```text +```sql remotecopyschema( TEXT, TEXT, @@ -770,9 +792,10 @@ The target server environment: Before invoking the function, the connection is made by database user `enterprisedb` to database `tgtdb`. A `worker_count` of `4` is specified for this function. -```text +```sql tgtdb=# SELECT edb_util.remotecopyschema ('src_server','tgt_server','srcschema','tgtschema','clone_rmt_src_tgt',worker_count => 4); +__OUTPUT__ remotecopyschema ------------------ t @@ -781,8 +804,9 @@ tgtdb=# SELECT edb_util.remotecopyschema The following displays the status from the log file during various points in the cloning process: -```text +```sql tgtdb=# SELECT edb_util.process_status_from_log('clone_rmt_src_tgt'); +__OUTPUT__ process_status_from_log ----------------------------------------------------------------------------------------------------- @@ -791,8 +815,10 @@ tgtdb=# SELECT edb_util.process_status_from_log('clone_rmt_src_tgt'); copied data in [tgtschema.pgbench_tellers] ") (1 row) - +``` +```sql tgtdb=# SELECT edb_util.process_status_from_log('clone_rmt_src_tgt'); +__OUTPUT__ process_status_from_log ----------------------------------------------------------------------------------------------------- @@ -801,8 +827,10 @@ tgtdb=# SELECT edb_util.process_status_from_log('clone_rmt_src_tgt'); copied data in [tgtschema.pgbench_history] ") (1 row) - +``` +```sql tgtdb=# SELECT edb_util.process_status_from_log('clone_rmt_src_tgt'); +__OUTPUT__ process_status_from_log ------------------------------------------------------------------------------------------------------ @@ -811,8 +839,10 @@ tgtdb=# SELECT edb_util.process_status_from_log('clone_rmt_src_tgt'); CONSTRAINT pgbench_tellers_pkey successful" ) (1 row) - +``` +```sql tgtdb=# SELECT edb_util.process_status_from_log('clone_rmt_src_tgt'); +__OUTPUT__ process_status_from_log ------------------------------------------------------------------------------------------------------- --------------------------------- @@ -823,8 +853,9 @@ tgtdb=# SELECT edb_util.process_status_from_log('clone_rmt_src_tgt'); The following shows the cloned tables: -```text +```sql tgtdb=# \dt+ +__OUTPUT__ List of relations Schema | Name | Type | Owner | Size | Description -----------+------------------+-------+--------------+------------+------------- @@ -876,7 +907,7 @@ In case two clone schema jobs are running in parallel, the first log file has `0 The `remotecopyschema_nb` function copies a schema and its database objects from a source schema in the remote source database specified within the `source_fdw` foreign server to a target schema in the local target database specified within the `target_fdw` foreign server, but in a non-blocking manner as a job submitted to pgAgent. -```text +```sql remotecopyschema_nb( TEXT, TEXT, @@ -944,16 +975,17 @@ The same cloning operation is performed as the example in `remotecopyschema`, bu The following command starts pgAgent on the target database `tgtdb`. The `pgagent` program file is located in the `bin` subdirectory of the EDB Postgres Advanced Server installation directory. -```text +```shell [root@localhost bin]# ./pgagent -l 1 -s /tmp/pgagent_tgtdb_log hostaddr=127.0.0.1 port=5444 user=enterprisedb dbname=tgtdb password=password ``` The `remotecopyschema_nb` function returns the job ID shown as `2` in the example. -```text +```sql tgtdb=# SELECT edb_util.remotecopyschema_nb ('src_server','tgt_server','srcschema','tgtschema','clone_rmt_src_tgt',worker_count => 4); +__OUTPUT__ remotecopyschema_nb --------------------- 2 @@ -962,8 +994,9 @@ tgtdb=# SELECT edb_util.remotecopyschema_nb The completed status of the job is shown by the following: -```text +```sql tgtdb=# SELECT edb_util.process_status_from_log('clone_rmt_src_tgt'); +__OUTPUT__ process_status_from_log -------------------------------------------------------------------------------------------------------------------- (FINISH,"29-JUN-17 current:16:00.100284 -04:00",3849,INFO,"STAGE: FINAL","successfully clone schema into tgtschema") @@ -972,8 +1005,9 @@ tgtdb=# SELECT edb_util.process_status_from_log('clone_rmt_src_tgt'); The following removes the log file and the pgAgent job: -```text +```sql tgtdb=# SELECT edb_util.remove_log_file_and_job ('clone_rmt_src_tgt',2); +__OUTPUT__ remove_log_file_and_job ------------------------- t @@ -986,7 +1020,7 @@ tgtdb=# SELECT edb_util.remove_log_file_and_job ('clone_rmt_src_tgt',2); The `process_status_from_log` function provides the status of a cloning function from its log file. -```text +```sql process_status_from_log ( TEXT ) @@ -1013,8 +1047,9 @@ Name of the log file recording the cloning of a schema as specified when the clo The following shows usage of the `process_status_from_log` function: -```text +```sql edb=# SELECT edb_util.process_status_from_log('clone_edb_edbcopy'); +__OUTPUT__ process_status_from_log --------------------------------------------------------------------------------------------------- (FINISH,"26-JUN-17 11:57:03.214458 -04:00",3691,INFO,"STAGE: FINAL","successfully cloned schema") @@ -1027,7 +1062,7 @@ edb=# SELECT edb_util.process_status_from_log('clone_edb_edbcopy'); The `remove_log_file_and_job` function performs cleanup tasks by removing the log files created by the schema cloning functions and the jobs created by the non-blocking functions. -```text +```sql remove_log_file_and_job ( { TEXT | INTEGER | @@ -1056,8 +1091,9 @@ Job ID of the job to be removed. The following examples removes only the log file, given the log filename. -```text +```sql edb=# SELECT edb_util.remove_log_file_and_job ('clone_edb_edbcopy'); +__OUTPUT__ remove_log_file_and_job ------------------------- t @@ -1066,8 +1102,9 @@ edb=# SELECT edb_util.remove_log_file_and_job ('clone_edb_edbcopy'); The following example removes only the job, given the job ID. -```text +```sql edb=# SELECT edb_util.remove_log_file_and_job (3); +__OUTPUT__ remove_log_file_and_job ------------------------- t @@ -1076,8 +1113,9 @@ edb=# SELECT edb_util.remove_log_file_and_job (3); The following example removes the log file and the job, given both values: -```text +```sql tgtdb=# SELECT edb_util.remove_log_file_and_job ('clone_rmt_src_tgt',2); +__OUTPUT__ remove_log_file_and_job ------------------------- t diff --git a/product_docs/docs/epas/15/epas_guide/15_enhanced_sql_and_other_misc_features.mdx b/product_docs/docs/epas/15/epas_guide/15_enhanced_sql_and_other_misc_features.mdx index cba68b068ce..747ab93da0f 100644 --- a/product_docs/docs/epas/15/epas_guide/15_enhanced_sql_and_other_misc_features.mdx +++ b/product_docs/docs/epas/15/epas_guide/15_enhanced_sql_and_other_misc_features.mdx @@ -15,7 +15,7 @@ EDB Postgres Advanced Server includes enhanced SQL functionality and various oth In addition to commenting on objects supported by the PostgreSQL `COMMENT` command, EDB Postgres Advanced Server supports comments on additional object types. The complete supported syntax is: -```text +```sql COMMENT ON { AGGREGATE ( ) | @@ -63,7 +63,7 @@ COMMENT ON where `aggregate_signature` is: -```text +```sql * | [ ] [ ] [ , ... ] | [ [ ] [ ] [ , ... ] ] @@ -80,7 +80,7 @@ The name of the object on which you are commenting. Include the `AGGREGATE` clause to create a comment about an aggregate. `aggregate_name` specifies the name of an aggregate, and `aggregate_signature` specifies the associated signature in one of the following forms: -```text +```sql * | [ ] [ ] [ , ... ] | [ [ ] [ ] [ , ... ] ] @@ -165,7 +165,7 @@ Names of tables, aggregates, collations, conversions, domains, foreign tables, f The following example adds a comment to a table named `new_emp`: -```text +```sql COMMENT ON TABLE new_emp IS 'This table contains information about new employees.'; ``` @@ -188,8 +188,9 @@ PostgreSQL $PG_VERSION_EXT (EnterpriseDB EDB Postgres Advanced Server $PG_VERSIO So for the current EDB Postgres Advanced Server the version string appears as follows: -```text +```sql edb@45032=#select version(); +__OUTPUT__ version ----------------------------------------------------------------------------------------------- ------------------------------------------------ @@ -200,8 +201,9 @@ PostgreSQL 14.0 (EnterpriseDB EDB Postgres Advanced Server 14.0.0) on x86_64-pc- In contrast, for EDB Postgres Advanced Server 10, the version string was the following: -```text +```sql edb=# select version(); +__OUTPUT__ version ------------------------------------------------------------------------------------------ ------------------- diff --git a/product_docs/docs/epas/15/epas_guide/17_advanced_server_keywords.mdx b/product_docs/docs/epas/15/epas_guide/17_advanced_server_keywords.mdx index c8a4161dbcd..77930ad4d46 100644 --- a/product_docs/docs/epas/15/epas_guide/17_advanced_server_keywords.mdx +++ b/product_docs/docs/epas/15/epas_guide/17_advanced_server_keywords.mdx @@ -51,9 +51,10 @@ The following table lists the predefined exceptions, the SQLstate values, associ A keyword is a word that is recognized by the EDB Postgres Advanced Server parser as having a special meaning or association. You can use the `pg_get_keywords()` function to retrieve an up-to-date list of the EDB Postgres Advanced Server keywords: -```text +```sql acctg=# acctg=# SELECT * FROM pg_get_keywords(); +__OUTPUT__ word | catcode | catdesc ---------------------+---------+--------------------------------- abort | U | unreserved @@ -70,7 +71,7 @@ acctg=# SELECT * FROM pg_get_keywords(); Note that any character can be used in an identifier if the name is enclosed in double quotes. You can selectively query the `pg_get_keywords()` function to retrieve an up-to-date list of the EDB Postgres Advanced Server keywords that belong to a specific category: -```text +```sql SELECT * FROM pg_get_keywords() WHERE catcode = 'code'; ``` diff --git a/product_docs/docs/epas/15/epas_qs_linux_7/index.mdx b/product_docs/docs/epas/15/epas_qs_linux_7/index.mdx index 12443db0883..977a8faa63a 100644 --- a/product_docs/docs/epas/15/epas_qs_linux_7/index.mdx +++ b/product_docs/docs/epas/15/epas_qs_linux_7/index.mdx @@ -27,13 +27,13 @@ Supporting functions, rocedures, data types, index types, operators, utilities, Before installing EDB Postgres Advanced Server, use `yum` to install prerequisite packages: -```text +```shell yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm ``` If you are installing Migration Toolkit or EDB\*Plus, you must first install Java: -```text +```shell yum -y install java ``` @@ -43,7 +43,7 @@ yum -y install java **Step 2:** Assume superuser privileges to install the EDB repository configuration package: -```text +```shell yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm ``` @@ -51,7 +51,7 @@ yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm **Step 4:** Update the cache and install EDB Postgres Advanced Server: -```text +```shell yum makecache yum -y install edb-as14-server @@ -59,7 +59,7 @@ yum -y install edb-as14-server **Step 5:** Use sudo to assume the identity of the `enterprisedb` database superuser and create an EDB Postgres Advanced Server cluster named `acctg` on listener port `5444`: -```text +```shell sudo su - enterprisedb /usr/edb/as14/bin/initdb -D /var/lib/edb/as14/acctg @@ -69,13 +69,13 @@ sudo su - enterprisedb As the `enterprisedb` user, start the cluster: -```text +```shell /usr/edb/as14/bin/pg_ctl start -D /var/lib/edb/as14/acctg ``` You can check the status of the cluster with the command: -```text +```shell /usr/edb/as14/bin/pg_ctl status -D /var/lib/edb/as14/acctg ``` @@ -85,25 +85,25 @@ After installing the server and initializing a cluster, you can connect to the d As the `enterprisedb` user, open a psql session: -```text +```shell /usr/edb/as14/bin/psql -d edb -p 5444 ``` Then, assign a password to the `enterprisedb` user: -```text +```sql ALTER ROLE enterprisedb IDENTIFIED BY password; ``` Create a database (named `hr`): -```text +```sql CREATE DATABASE hr; ``` Connect to the new database and create a table (named `dept`): -```text +```sql \c hr CREATE TABLE public.dept (deptno numeric(2) NOT NULL CONSTRAINT dept_pk @@ -113,7 +113,7 @@ varchar(13)); Add data to the table: -```text +```sql INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK'); INSERT into dept VALUES (20,'RESEARCH','DALLAS'); @@ -121,8 +121,9 @@ INSERT into dept VALUES (20,'RESEARCH','DALLAS'); You can use simple SQL commands to query the database and retrieve information about the data you have added to the table: -```text +```sql SELECT * FROM dept; +__OUTPUT__ deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK @@ -132,7 +133,7 @@ SELECT * FROM dept; Or, create database users: -```text +```sql ALTER ROLE enterprisedb IDENTIFIED BY password; ``` diff --git a/product_docs/docs/epas/15/epas_qs_linux_8/index.mdx b/product_docs/docs/epas/15/epas_qs_linux_8/index.mdx index 50c04757077..4f4a6b2d297 100644 --- a/product_docs/docs/epas/15/epas_qs_linux_8/index.mdx +++ b/product_docs/docs/epas/15/epas_qs_linux_8/index.mdx @@ -27,13 +27,13 @@ Supporting functions, procedures, data types, index types, operators, utilities, Before installing EDB Postgres Advanced Server, assume superuser privileges and use `dnf` to install prerequisite packages: -```text +```shell dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm ``` If you are installing Migration Toolkit or EDB\*Plus, you must first install Java: -```text +```shell dnf -y install java ``` @@ -43,7 +43,7 @@ dnf -y install java **Step 2:** Assume superuser privileges to install the EDB repository configuration package: -```text +```shell dnf -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm ``` @@ -51,7 +51,7 @@ dnf -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm **Step 4:** Update the cache and install EDB Postgres Advanced Server: -```text +```shell dnf makecache dnf -y install edb-as14-server @@ -59,7 +59,7 @@ dnf -y install edb-as14-server **Step 5:** Use sudo to assume the identity of the `enterprisedb` database superuser and create an EDB Postgres Advanced Server cluster named `acctg` on listener port `5444`: -```text +```shell sudo su - enterprisedb /usr/edb/as14/bin/initdb -D /var/lib/edb/as14/acctg @@ -69,13 +69,13 @@ sudo su - enterprisedb As the `enterprisedb` user, start the cluster: -```text +```shell /usr/edb/as14/bin/pg_ctl start -D /var/lib/edb/as14/acctg ``` You can check the status of the cluster with the command: -```text +```shell /usr/edb/as14/bin/pg_ctl status -D /var/lib/edb/as14/acctg ``` @@ -85,25 +85,25 @@ After installing the server and initializing a cluster, you can connect to the d As the `enterprisedb` user, open a psql session: -```text +```shell /usr/edb/as14/bin/psql -d edb ``` Then, assign a password to the `enterprisedb` user: -```text +```sql ALTER ROLE enterprisedb IDENTIFIED BY password; ``` Create a database (named `hr`): -```text +```sql CREATE DATABASE hr; ``` Connect to the new database and create a table (named `dept`): -```text +```sql \c hr CREATE TABLE public.dept (deptno numeric(2) NOT NULL CONSTRAINT dept_pk @@ -113,7 +113,7 @@ varchar(13)); Add data to the table: -```text +```sql INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK'); INSERT into dept VALUES (20,'RESEARCH','DALLAS'); @@ -121,8 +121,9 @@ INSERT into dept VALUES (20,'RESEARCH','DALLAS'); You can use simple SQL commands to query the database and retrieve information about the data you have added to the table: -```text +```sql SELECT * FROM dept; +__OUTPUT__ deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK @@ -132,7 +133,7 @@ SELECT * FROM dept; Or create database users: -```text +```sql ALTER ROLE enterprisedb IDENTIFIED BY password; ``` diff --git a/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/02_configuring_sql_protect.mdx b/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/02_configuring_sql_protect.mdx index 3098e29e597..3a03b3a401c 100644 --- a/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/02_configuring_sql_protect.mdx +++ b/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/02_configuring_sql_protect.mdx @@ -41,7 +41,7 @@ Ensure the following prerequisites are met before configuring SQL/Protect: The following example shows the settings of these parameters in the `postgresql.conf` file: -```text +```ini shared_preload_libraries = '$libdir/dbms_pipe,$libdir/edb_gen,$libdir/sqlprotect' # (change requires restart) . @@ -60,7 +60,7 @@ edb_sql_protect.max_queries_to_save = 5000 On a Redhat or CentOS 7.x installation, use the command: -```text +```shell systemctl restart edb-as-14 ``` @@ -70,7 +70,7 @@ systemctl restart edb-as-14 The following example shows this process to set up protection for a database named `edb`: -```text +```sql $ /usr/edb/as14/bin/psql -d edb -U enterprisedb Password for user enterprisedb: psql.bin (14.0.0, server 14.0.0) @@ -117,7 +117,7 @@ For each database that you want to protect, you must determine the roles you wan **Step 1:** Connect as a superuser to a database that you wish to protect with either `psql` or Postgres Enterprise Manager Client: -```text +```sql $ /usr/edb/as14/bin/psql -d edb -U enterprisedb Password for user enterprisedb: psql.bin (14.0.0, server 14.0.0) @@ -128,7 +128,7 @@ edb=# **Step 2:** Since the SQL/Protect tables, functions, and views are built under the `sqlprotect` schema, use the `SET search_path` command to include the `sqlprotect` schema in your search path. This eliminates the need to schema-qualify any operation or query involving SQL/Protect database objects: -```text +```sql edb=# SET search_path TO sqlprotect; SET ``` @@ -137,8 +137,9 @@ SET To add a role, use the function `protect_role('rolename')`. The following example protects a role named `appuser`: -```text +```sql edb=# SELECT protect_role('appuser'); +__OUTPUT__ protect_role -------------- @@ -147,8 +148,9 @@ edb=# SELECT protect_role('appuser'); You can list the roles that have been added to the protected roles list by issuing the following query: -```text +```sql edb=# SELECT * FROM edb_sql_protect; +__OUTPUT__ dbid | roleid | protect_relations | allow_utility_cmds | allow_tautology | allow_empty_dml -------+--------+-------------------+--------------------+-----------------+-- @@ -159,10 +161,11 @@ edb=# SELECT * FROM edb_sql_protect; A view is also provided that gives the same information using the object names instead of the Object Identification numbers (OIDs): -```text +```sql edb=# \x Expanded display is on. edb=# SELECT * FROM list_protected_users; +__OUTPUT__ -[ RECORD 1 ]------+-------- dbname | edb username | appuser @@ -204,7 +207,7 @@ However, if a role attempts to access a relation that is not in its protected re **Step 1:** To activate SQL/Protect in learn mode, set the parameters in the `postgresql.conf` file as shown below: -```text +```ini edb_sql_protect.enabled = on edb_sql_protect.level = learn ``` @@ -215,8 +218,9 @@ Choose `Expert Configuration`, then `Reload Configuration` from the EDB Postgres For an alternative method of reloading the configuration file, use the `pg_reload_conf` function. Be sure you are connected to a database as a superuser and execute `function pg_reload_conf` as shown by the following example: -```text +```sql edb=# SELECT pg_reload_conf(); +__OUTPUT__ pg_reload_conf ---------------- t @@ -227,8 +231,9 @@ edb=# SELECT pg_reload_conf(); As an example the following queries are issued in the `psql` application by protected role `appuser`: -```text +```sql edb=> SELECT * FROM dept; +__OUTPUT__ NOTICE: SQLPROTECT: Learned relation: 16384 deptno | dname | loc --------+------------+---------- @@ -237,8 +242,10 @@ NOTICE: SQLPROTECT: Learned relation: 16384 30 | SALES | CHICAGO 40 | OPERATIONS | BOSTON (4 rows) - +``` +```sql edb=> SELECT empno, ename, job FROM emp WHERE deptno = 10; +__OUTPUT__ NOTICE: SQLPROTECT: Learned relation: 16391 empno | ename | job -------+--------+----------- @@ -252,7 +259,7 @@ SQL/Protect generates a `NOTICE` severity level message indicating the relation In SQL/Protect learn mode, SQL statements that are cause for suspicion are not prevented from executing, but a message is issued to alert the user to potentially dangerous statements as shown by the following example: -```text +```sql edb=> CREATE TABLE appuser_tab (f1 INTEGER); NOTICE: SQLPROTECT: This command type is illegal for this user CREATE TABLE @@ -266,15 +273,16 @@ DELETE 0 Connect as a superuser to the database you are monitoring and set the search path to include the `sqlprotect` schema: -```text +```sql edb=# SET search_path TO sqlprotect; SET ``` Query the `edb_sql_protect_rel` table to see the relations added to the protected relations list: -```text +```sql edb=# SELECT * FROM edb_sql_protect_rel; +__OUTPUT__ dbid | roleid | relid --------+--------+------- 13917 | 16671 | 16384 @@ -285,8 +293,9 @@ edb=# SELECT * FROM edb_sql_protect_rel; The `list_protected_rels` view provides more comprehensive information along with the object names instead of the OIDs: -```text +```sql edb=# SELECT * FROM list_protected_rels; +__OUTPUT__ Database | Protected User | Schema | Name | Type | Owner ----------+----------------+--------+-------------+-------+------------ edb | appuser | public | dept | Table | enterprisedb @@ -303,7 +312,7 @@ Passive mode is the less restrictive of the two protection modes, passive and ac **Step 1:** To activate `SQL/Protect` in passive mode, set the following parameters in the `postgresql.conf` file as shown below: -```text +```ini edb_sql_protect.enabled = on edb_sql_protect.level = passive ``` @@ -312,8 +321,9 @@ edb_sql_protect.level = passive Now SQL/Protect is in passive mode. For relations that have been learned such as the `dept` and `emp` tables of the prior examples, SQL statements are permitted with no special notification to the client by `SQL/Protect` as shown by the following queries run by user `appuser`: -```text +```sql edb=> SELECT * FROM dept; +__OUTPUT__ deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK @@ -321,8 +331,10 @@ edb=> SELECT * FROM dept; 30 | SALES | CHICAGO 40 | OPERATIONS | BOSTON (4 rows) - +``` +```sql edb=> SELECT empno, ename, job FROM emp WHERE deptno = 10; +__OUTPUT__ empno | ename | job -------+--------+----------- 7782 | CLARK | MANAGER @@ -333,7 +345,7 @@ edb=> SELECT empno, ename, job FROM emp WHERE deptno = 10; SQL/Protect does not prevent any SQL statement from executing, but issues a message of `WARNING` severity level for SQL statements executed against relations that were not learned, or for SQL statements that contain a prohibited signature as shown in the following example: -```text +```sql edb=> CREATE TABLE appuser_tab_2 (f1 INTEGER); WARNING: SQLPROTECT: This command type is illegal for this user CREATE TABLE @@ -346,6 +358,7 @@ INSERT 0 1 edb=> SELECT * FROM appuser_tab_2 WHERE 'x' = 'x'; WARNING: SQLPROTECT: Illegal Query: relations WARNING: SQLPROTECT: Illegal Query: tautology +__OUTPUT__ f1 ---- 1 @@ -359,10 +372,11 @@ By querying the view `edb_sql_protect_stats`, you can see the number of times SQ The following is a query on `edb_sql_protect_stats`: -```text +```sql edb=# SET search_path TO sqlprotect; SET edb=# SELECT * FROM edb_sql_protect_stats; +__OUTPUT__ username | superusers | relations | commands | tautology | dml -----------+------------+-----------+----------+-----------+----- appuser | 0 | 3 | 1 | 1 | 0 @@ -375,8 +389,9 @@ By querying the `edb_sql_protect_queries` view, you can see the SQL statements t The following code sample shows a query on `edb_sql_protect_queries`: -```text +```sql edb=# SELECT * FROM edb_sql_protect_queries; +__OUTPUT__ -[ RECORD 1 ]+--------------------------------------------- username | appuser ip_address | @@ -416,7 +431,7 @@ In active mode, disallowed SQL statements are prevented from executing. Also, th **Step 1:** To activate `SQL/Protect` in active mode, set the following parameters in the `postgresql.conf` file as shown below: -```text +```ini edb_sql_protect.enabled = on edb_sql_protect.level = active ``` @@ -425,7 +440,7 @@ edb_sql_protect.level = active The following example illustrates SQL statements similar to those given in the examples of Step 2 in `Passive Mode`, but executed by user `appuser` when `edb_sql_protect.level` is set to `active`: -```text +```sql edb=> CREATE TABLE appuser_tab_3 (f1 INTEGER); ERROR: SQLPROTECT: This command type is illegal for this user edb=> INSERT INTO appuser_tab_2 VALUES (1); @@ -436,8 +451,9 @@ ERROR: SQLPROTECT: Illegal Query: relations The following shows the resulting statistics: -```text +```sql edb=# SELECT * FROM sqlprotect.edb_sql_protect_stats; +__OUTPUT__ username | superusers | relations | commands | tautology | dml -----------+------------+-----------+----------+-----------+----- appuser | 0 | 5 | 2 | 1 | 0 @@ -446,8 +462,9 @@ edb=# SELECT * FROM sqlprotect.edb_sql_protect_stats; The following is a query on `edb_sql_protect_queries`: -```text +```sql edb=# SELECT * FROM sqlprotect.edb_sql_protect_queries; +__OUTPUT__ -[ RECORD 1 ]+--------------------------------------------- username | appuser ip_address | diff --git a/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/03_common_maintenance_operations.mdx b/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/03_common_maintenance_operations.mdx index 4455e380f25..31cd4947d08 100644 --- a/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/03_common_maintenance_operations.mdx +++ b/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/03_common_maintenance_operations.mdx @@ -16,8 +16,9 @@ You must be connected as a superuser to perform these operations and have includ To add a role to the protected roles list run `protect_role('rolename')` as shown in the following example: -```text +```sql edb=# SELECT protect_role('newuser'); +__OUTPUT__ protect_role -------------- (1 row) @@ -27,7 +28,7 @@ edb=# SELECT protect_role('newuser'); To remove a role from the protected roles list, use either of the following functions: -```text +```sql unprotect_role('rolename') unprotect_role(roleoid) @@ -43,8 +44,9 @@ The offending queries for a role that has been removed are not deleted until you The following is an example of the `unprotect_role` function: -```text +```sql edb=# SELECT unprotect_role('newuser'); +__OUTPUT__ unprotect_role ---------------- (1 row) @@ -52,8 +54,9 @@ edb=# SELECT unprotect_role('newuser'); Alternatively, the role could be removed by giving its OID of `16693`: -```text +```sql edb=# SELECT unprotect_role(16693); +__OUTPUT__ unprotect_role ---------------- (1 row) @@ -72,15 +75,16 @@ Be sure to qualify the following columns in your `WHERE` clause of the statement For example, to allow a given role to issue utility commands, update the `allow_utility_cmds` column as follows: -```text +```sql UPDATE edb_sql_protect SET allow_utility_cmds = TRUE WHERE dbid = 13917 AND roleid = 16671; ``` You can verify the change was made by querying `edb_sql_protect` or `list_protected_users`. In the following query note that column `allow_utility_cmds` now contains `t`: -```text +```sql edb=# SELECT dbid, roleid, allow_utility_cmds FROM edb_sql_protect; +__OUTPUT__ dbid | roleid | allow_utility_cmds --------+--------+-------------------- 13917 | 16671 | t @@ -95,7 +99,7 @@ If SQL/Protect has learned that a given relation is accessible for a given role, Delete its entry from the `edb_sql_protect_rel` table using any of the following functions: -```text +```sql unprotect_rel('rolename', 'relname') unprotect_rel('rolename', 'schema', 'relname') unprotect_rel(roleoid, reloid) @@ -107,8 +111,9 @@ The third function format allows you to specify the OIDs of the role and relatio The following example illustrates the removal of the `public.emp` relation from the protected relations list of the role `appuser`: -```text +```sql edb=# SELECT unprotect_rel('appuser', 'public', 'emp'); +__OUTPUT__ unprotect_rel --------------- (1 row) @@ -116,8 +121,9 @@ edb=# SELECT unprotect_rel('appuser', 'public', 'emp'); The following query shows there is no longer an entry for the `emp` relation: -```text +```sql edb=# SELECT * FROM list_protected_rels; +__OUTPUT__ Database | Protected User | Schema | Name | Type | Owner ----------+----------------+--------+-------------+-------+-------------- edb | appuser | public | dept | Table | enterprisedb @@ -133,7 +139,7 @@ SQL/Protect now issues a warning or completely blocks access (depending upon the You can delete statistics from view `edb_sql_protect_stats` using either of the two following functions: -```text +```sql drop_stats('rolename') drop_stats(roleoid) @@ -143,13 +149,16 @@ The variation of the function using the OID is useful if you remove the role usi The following is an example of the `drop_stats` function: -```text +```sql edb=# SELECT drop_stats('appuser'); +__OUTPUT__ drop_stats ------------ (1 row) - +``` +```sql edb=# SELECT * FROM edb_sql_protect_stats; +__OUTPUT__ username | superusers | relations | commands | tautology | dml -----------+------------+-----------+----------+-----------+----- (0 rows) @@ -157,21 +166,26 @@ edb=# SELECT * FROM edb_sql_protect_stats; The following is an example of using the `drop_stats(roleoid)` form of the function when a role is dropped before deleting its statistics: -```text +```sql edb=# SELECT * FROM edb_sql_protect_stats; +__OUTPUT__ username | superusers | relations | commands | tautology | dml ---------------------+------------+-----------+----------+-----------+----- unknown (OID=16693) | 0 | 5 | 3 | 1 | 0 appuser | 0 | 5 | 2 | 1 | 0 (2 rows) - +``` +```sql edb=# SELECT drop_stats(16693); +__OUTPUT__ drop_stats ------------ (1 row) - +``` +```sql edb=# SELECT * FROM edb_sql_protect_stats; +__OUTPUT__ username | superusers | relations | commands | tautology | dml ----------+------------+-----------+----------+-----------+----- appuser | 0 | 5 | 2 | 1 | 0 @@ -184,7 +198,7 @@ edb=# SELECT * FROM edb_sql_protect_stats; You can delete offending queries from view `edb_sql_protect_queries` using either of the two following functions: -```text +```sql drop_queries('rolename') drop_queries(roleoid) @@ -194,14 +208,17 @@ The variation of the function using the OID is useful if you remove the role usi The following is an example of the `drop_queries` function: -```text +```sql edb=# SELECT drop_queries('appuser'); +__OUTPUT__ drop_queries -------------- 5 (1 row) - +``` +```sql edb=# SELECT * FROM edb_sql_protect_queries; +__OUTPUT__ username | ip_address | port | machine_name | date_time | query -----------+------------+------+--------------+-----------+------- (0 rows) @@ -209,8 +226,9 @@ edb=# SELECT * FROM edb_sql_protect_queries; The following is an example of using the `drop_queries(roleoid)` form of the function when a role is dropped before deleting its queries: -```text +```sql edb=# SELECT username, query FROM edb_sql_protect_queries; +__OUTPUT__ username | query ---------------------+---------------------------------------------- unknown (OID=16454) | CREATE TABLE appuser_tab_2 (f1 INTEGER); @@ -219,14 +237,18 @@ edb=# SELECT username, query FROM edb_sql_protect_queries; unknown (OID=16454) | INSERT INTO appuser_tab_2 VALUES (1); unknown (OID=16454) | SELECT * FROM appuser_tab_2 WHERE 'x' = 'x'; (5 rows) - +``` +```sql edb=# SELECT drop_queries(16454); +__OUTPUT__ drop_queries -------------- 5 (1 row) - +``` +```sql edb=# SELECT * FROM edb_sql_protect_queries; +__OUTPUT__ username | ip_address | port | machine_name | date_time | query ----------+------------+------+--------------+-----------+------- (0 rows) diff --git a/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/04_backing_up_restoring_sql_protect.mdx b/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/04_backing_up_restoring_sql_protect.mdx index 99fe98d4f9c..544c7db806d 100644 --- a/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/04_backing_up_restoring_sql_protect.mdx +++ b/product_docs/docs/epas/15/epas_security_guide/02_protecting_against_sql_injection_attacks/04_backing_up_restoring_sql_protect.mdx @@ -33,7 +33,7 @@ The following steps back up a database that has been configured with SQL/Protect The following example shows a plain-text backup file named `/tmp/edb.dmp` created from database `edb` using the `pg_dump` utility program: -```text +```shell $ cd /usr/edb/as14/bin $ ./pg_dump -U enterprisedb -Fp -f /tmp/edb.dmp edb Password: @@ -44,8 +44,9 @@ $ The `enterprisedb` operating system account (`postgres` if you installed EDB Postgres Advanced Server in PostgreSQL compatibility mode) must have read and write access to the directory specified in `sqlprotect_file`. -```text +```sql edb=# SELECT sqlprotect.export_sqlprotect('/tmp/sqlprotect.dmp'); +__OUTPUT__ export_sqlprotect ------------------- (1 row) @@ -59,7 +60,7 @@ The files `/tmp/edb.dmp` and `/tmp/sqlprotect.dmp` comprise your total database The following example uses the `psql` utility program to restore the plain-text backup file `/tmp/edb.dmp` to a newly created database named `newdb`: -```text +```sql $ /usr/edb/as14/bin/psql -d newdb -U enterprisedb -f /tmp/edb.dmp Password for user enterprisedb: SET @@ -78,7 +79,7 @@ CREATE SCHEMA This step removes any existing rows in the `edb_sql_protect_rel` table that were backed up from the original database. These rows don't contain the correct OIDs relative to the database where the backup file has been restored: -```text +```sql $ /usr/edb/as14/bin/psql -d newdb -U enterprisedb Password for user enterprisedb: psql.bin (14.0.0, server 14.0.0) @@ -92,7 +93,7 @@ DELETE 2 This step removes any existing rows in the `edb_sql_protect` table that were backed up from the original database. These rows don't contain the correct OIDs relative to the database where the backup file has been restored: -```text +```sql newdb=# DELETE FROM sqlprotect.edb_sql_protect; DELETE 1 ``` @@ -101,8 +102,9 @@ DELETE 1 This step removes any existing statistics that may exist for the database to which you are restoring the backup. The following query displays any existing statistics: -```text +```sql newdb=# SELECT * FROM sqlprotect.edb_sql_protect_stats; +__OUTPUT__ username | superusers | relations | commands | tautology | dml -----------+------------+-----------+----------+-----------+----- (0 rows) @@ -112,8 +114,9 @@ For each row that appears in the preceding query, use the `drop_stats` function For example, if a row appeared with `appuser` in the `username` column, issue the following command to remove it: -```text +```sql newdb=# SELECT sqlprotect.drop_stats('appuser'); +__OUTPUT__ drop_stats ------------ (1 row) @@ -123,8 +126,9 @@ newdb=# SELECT sqlprotect.drop_stats('appuser'); This step removes any existing queries that may exist for the database to which you are restoring the backup. The following query displays any existing queries: -```text +```sql edb=# SELECT * FROM sqlprotect.edb_sql_protect_queries; +__OUTPUT__ username | ip_address | port | machine_name | date_time | query -----------+------------+------+--------------+-----------+------- (0 rows) @@ -134,8 +138,9 @@ For each row that appears in the preceding query, use the `drop_queries` functio For example, if a row appeared with `appuser` in the `username` column, issue the following command to remove it: -```text +```sql edb=# SELECT sqlprotect.drop_queries('appuser'); +__OUTPUT__ drop_queries -------------- (1 row) @@ -147,8 +152,9 @@ If the original and new databases reside in the same database server, then nothi **Step 7:** Run the function `import_sqlprotect('sqlprotect_file')` where `sqlprotect_file` is the fully qualified path to the file you created in Step 2 of *Backing Up the Database*. -```text +```sql newdb=# SELECT sqlprotect.import_sqlprotect('/tmp/sqlprotect.dmp'); +__OUTPUT__ import_sqlprotect ------------------- (1 row) @@ -158,8 +164,9 @@ Tables `edb_sql_protect` and `edb_sql_protect_rel` are now populated with entrie The SQL/Protect tables and statistics are now properly restored for this database. This is verified by the following queries on the EDB Postgres Advanced Server system catalogs: -```text +```sql newdb=# SELECT datname, oid FROM pg_database; +__OUTPUT__ datname | oid -----------+------- template1 | 1 @@ -167,48 +174,60 @@ newdb=# SELECT datname, oid FROM pg_database; edb | 13917 newdb | 16679 (4 rows) - +``` +```sql newdb=# SELECT rolname, oid FROM pg_roles; +__OUTPUT__ rolname | oid --------------+------- enterprisedb | 10 appuser | 16671 newuser | 16678 (3 rows) - +``` +```sql newdb=# SELECT relname, oid FROM pg_class WHERE relname IN ('dept','emp','appuser_tab'); +__OUTPUT__ relname | oid -------------+------- appuser_tab | 16803 dept | 16809 emp | 16812 (3 rows) - +``` +```sql newdb=# SELECT * FROM sqlprotect.edb_sql_protect; +__OUTPUT__ dbid | roleid | protect_relations | allow_utility_cmds | allow_tautology | allow_empty_dml -------+--------+-------------------+--------------------+-----------------+-- --------------- 16679 | 16671 | t | t | f | f (1 row) - +``` +```sql newdb=# SELECT * FROM sqlprotect.edb_sql_protect_rel; +__OUTPUT__ dbid | roleid | relid -------+--------+------- 16679 | 16671 | 16809 16679 | 16671 | 16803 (2 rows) - +``` +```sql newdb=# SELECT * FROM sqlprotect.edb_sql_protect_stats; +__OUTPUT__ username | superusers | relations | commands | tautology | dml ----------+------------+-----------+----------+-----------+----- appuser | 0 | 5 | 2 | 1 | 0 (1 row) - +``` +```sql newedb=# \x Expanded display is on. nwedb=# SELECT * FROM sqlprotect.edb_sql_protect_queries; +__OUTPUT__ -[ RECORD 1 ]+--------------------------------------------- username | appuser ip_address | diff --git a/product_docs/docs/epas/15/epas_security_guide/04_sslutils.mdx b/product_docs/docs/epas/15/epas_security_guide/04_sslutils.mdx index e8a85eedb98..a98db08d029 100644 --- a/product_docs/docs/epas/15/epas_security_guide/04_sslutils.mdx +++ b/product_docs/docs/epas/15/epas_security_guide/04_sslutils.mdx @@ -14,7 +14,7 @@ In these sections, each parameter in the function’s parameter list is describe The `openssl_rsa_generate_key` function generates an RSA private key. The function signature is: -```text +```sql openssl_rsa_generate_key() RETURNS ``` @@ -24,7 +24,7 @@ When invoking the function, pass the number of bits as an integer value; the fun The `openssl_rsa_key_to_csr` function generates a certificate signing request (CSR). The signature is: -```text +```sql openssl_rsa_key_to_csr(, , , , , , ) RETURNS ``` @@ -65,7 +65,7 @@ The function generates and returns the certificate signing request. The `openssl_csr_to_crt` function generates a self-signed certificate or a certificate authority certificate. The signature is: -```text +```sql openssl_csr_to_crt(, , ) RETURNS ``` @@ -89,7 +89,7 @@ The function returns the self-signed certificate or certificate authority certif The `openssl_rsa_generate_crl` function generates a default certificate revocation list. The signature is: -```text +```sql openssl_rsa_generate_crl(, ) RETURNS ``` diff --git a/product_docs/docs/epas/15/epas_security_guide/05_data_redaction.mdx b/product_docs/docs/epas/15/epas_security_guide/05_data_redaction.mdx index b56032406d1..ec8515ae28e 100644 --- a/product_docs/docs/epas/15/epas_security_guide/05_data_redaction.mdx +++ b/product_docs/docs/epas/15/epas_security_guide/05_data_redaction.mdx @@ -38,7 +38,7 @@ The redaction policy commands are described in more detail in the subsequent sec ### Synopsis -```text +```sql CREATE REDACTION POLICY ON [ FOR ( ) ] [ ADD [ COLUMN ] USING @@ -50,7 +50,7 @@ CREATE REDACTION POLICY ON where `redaction_option` is: -```text +```sql { SCOPE | EXCEPTION } ``` @@ -107,7 +107,7 @@ The superuser and the table owner are exempt from the data redaction policy. Below is an example of how this feature can be used in production environments. Create the components for a data redaction policy on the `employees` table: -```text +```sql CREATE TABLE employees ( id integer GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, name varchar(40) NOT NULL, @@ -148,7 +148,7 @@ END; Now create a data redaction policy on `employees` to redact column `ssn` which should be accessible in equality condition and `salary` with default scope and exception. The redaction policy is exempt for the `hr` user. -```text +```sql CREATE REDACTION POLICY redact_policy_personal_info ON employees FOR (session_user != 'hr') ADD COLUMN ssn USING redact_ssn(ssn) WITH OPTIONS (SCOPE query, EXCEPTION equal), ADD COLUMN salary USING redact_salary(); @@ -156,10 +156,11 @@ ADD COLUMN salary USING redact_salary(); The visible data for the `hr` user is: -```text +```sql -- hr can view all columns data edb=# \c edb hr edb=> SELECT * FROM employees; +__OUTPUT__ id | name | ssn | phone | birthday | salary | email ----+--------------+-------------+------------+--------------------+--- @@ -175,10 +176,11 @@ edb=> SELECT * FROM employees; The visible data for the normal user `alice` is: -```text +```sql -- Normal user cannot see salary and ssn number. edb=> \c edb alice edb=> SELECT * FROM employees; +__OUTPUT__ id | name | ssn | phone | birthday | salary | email ----+--------------+-------------+------------+--------------------+--------+- @@ -194,9 +196,10 @@ email But `ssn` data is accessible when it used for equality check due to `exception_value` setting. -```text +```sql -- Get ssn number starting from 123 edb=> SELECT * FROM employees WHERE substring(ssn from 0 for 4) = '123'; +__OUTPUT__ id | name | ssn | phone | birthday | salary | email ----+----------+-------------+------------+--------------------+--------+----- @@ -232,7 +235,7 @@ edb=> SELECT * FROM employees WHERE substring(ssn from 0 for 4) = '123'; ### Synopsis -```text +```sql ALTER REDACTION POLICY ON RENAME TO ALTER REDACTION POLICY ON FOR ( ) @@ -261,7 +264,7 @@ ALTER REDACTION POLICY ON where `redaction_option` is: -```text +```sql { SCOPE | EXCEPTION } ``` @@ -334,14 +337,14 @@ To use `ALTER REDACTION POLICY`, you must own the table that the data redaction Update data redaction policy called `redact_policy_personal_info` on the table named `employees`: -```text +```sql ALTER REDACTION POLICY redact_policy_personal_info ON employees FOR (session_user != 'hr' AND session_user != 'manager'); ``` And to update data redaction function for the column `ssn` in the same policy: -```text +```sql ALTER REDACTION POLICY redact_policy_personal_info ON employees MODIFY COLUMN ssn USING redact_ssn_new(ssn); ``` @@ -360,7 +363,7 @@ MODIFY COLUMN ssn USING redact_ssn_new(ssn); ### Synopsis -```text +```sql DROP REDACTION POLICY [ IF EXISTS ] ON [ CASCADE | RESTRICT ] ``` @@ -395,7 +398,7 @@ To use `DROP REDACTION POLICY`, you must own the table that the redaction policy To drop the data redaction policy called `redact_policy_personal_info` on the table named `employees`: -```text +```sql DROP REDACTION POLICY redact_policy_personal_info ON employees; ``` diff --git a/product_docs/docs/epas/15/language_pack/02_installing_language_pack.mdx b/product_docs/docs/epas/15/language_pack/02_installing_language_pack.mdx index 0c649b7309e..f2ff95fc9e8 100644 --- a/product_docs/docs/epas/15/language_pack/02_installing_language_pack.mdx +++ b/product_docs/docs/epas/15/language_pack/02_installing_language_pack.mdx @@ -176,7 +176,7 @@ Follow these steps to add Python, Perl, and Tcl to your Language Pack: To simplify setting the value of `PATH` or `LD_LIBRARY_PATH`, you can create environment variables that identify the installation location: -```text +```shell PERLHOME=/Library/edb/languagepack/v2/Perl-5.26 PYTHONHOME=/Library/edb/languagepack/v2/Python-3.7 TCLHOME=/Library/edb/languagepack/v2/Tcl-8.6 @@ -188,7 +188,7 @@ Then, execute the following command to instruct the Python interpreter where to You can use the same environment variables when setting the value of `PATH`: -```text +```shell export PATH=$PYTHONHOME/bin: $PERLHOME/bin: $TCLHOME/bin:$PATH @@ -196,7 +196,7 @@ $TCLHOME/bin:$PATH Lastly, set the following variables to instruct OSX where to find the shared libraries: -```text +```shell export DYLD_LIBRARY_PATH=$PYTHONHOME/lib: $PERLHOME/lib/CORE:$TCLHOME/lib: $DYLD_LIBRARY_PATH diff --git a/product_docs/docs/epas/15/language_pack/03_using_the_procedural_languages.mdx b/product_docs/docs/epas/15/language_pack/03_using_the_procedural_languages.mdx index 0823f424d1d..a7cbbbcbf3d 100644 --- a/product_docs/docs/epas/15/language_pack/03_using_the_procedural_languages.mdx +++ b/product_docs/docs/epas/15/language_pack/03_using_the_procedural_languages.mdx @@ -16,7 +16,7 @@ You must install PL/Perl in each database (or in a template database) before cre You can now use a Postgres client application to access the features of the PL/Perl language. The following PL/Perl example creates a function named `perl_max` that returns the larger of two integer values: -```text +```sql CREATE OR REPLACE FUNCTION perl_max (integer, integer) RETURNS integer AS $$ if ($_[0] > $_[1]) @@ -32,6 +32,7 @@ Pass two values when calling the function: The server returns: ```SQL +__OUTPUT__ perl_max --------- 2 @@ -55,7 +56,7 @@ After installing PL/Python in your database, you can use the features of the PL/ The following PL/Python example creates a function named `pymax` that returns the larger of two integer values: -```text +```sql CREATE OR REPLACE FUNCTION pymax (a integer, b integer) RETURNS integer AS $$ if a > b: @@ -66,13 +67,14 @@ $$ LANGUAGE plpython3u; When calling the `pymax` function, pass two values as shown below: -```SQL +```sql SELECT pymax(12, 3); ``` The server returns: ```SQL +__OUTPUT__ pymax ------- 12 @@ -93,7 +95,7 @@ After creating the `pltcl` language, you can use the features of the PL/Tcl lang The following PL/Tcl example creates a function named `tcl_max` that returns the larger of two integer values: -```text +```sql CREATE OR REPLACE FUNCTION tcl_max(integer, integer) RETURNS integer AS $$ if {[argisnull 1]} { @@ -115,6 +117,7 @@ SELECT tcl_max(1, 2); The server returns: ```SQL +__OUTPUT__ tcl_max -------- 2 diff --git a/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/index.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/index.mdx index 5a93d9db277..55b07622ddc 100644 --- a/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/index.mdx +++ b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/01_performing_an_upgrade/index.mdx @@ -22,7 +22,7 @@ After extracting the metadata from the old cluster, `pg_upgrade` performs the bo If you are upgrading to EDB Postgres Advanced Server 14 and have installed the `edb_dblink_oci` or `edb_dblink_libpq` extension, you must drop the extension before performing an upgrade. To drop the extension, connect to the server with the psql or PEM client, and invoke the commands: -```text +```sql DROP EXTENSION edb_dblink_oci; DROP EXTENSION edb_dblink_libpq; ``` diff --git a/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/index.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/index.mdx index f6f46050bde..cbcf9f1b6b7 100644 --- a/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/index.mdx +++ b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/02_invoking_pg_upgrade/index.mdx @@ -6,7 +6,7 @@ redirects: When invoking `pg_upgrade`, you must specify the location of the old and new cluster's `PGDATA` and executable (`/bin`) directories, as well as the name of the EDB Postgres Advanced Server superuser, and the ports on which the installations are listening. A typical call to invoke `pg_upgrade` to migrate from EDB Postgres Advanced Server 13 to EDB Postgres Advanced Server 14 takes the form: -```text +```shell pg_upgrade --old-datadir --new-datadir diff --git a/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/03_upgrading_to_advanced_server.mdx b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/03_upgrading_to_advanced_server.mdx index 31e2bcfa7f9..9a55d8004bb 100644 --- a/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/03_upgrading_to_advanced_server.mdx +++ b/product_docs/docs/epas/15/upgrading/04_upgrading_an_installation_with_pg_upgrade/03_upgrading_to_advanced_server.mdx @@ -26,13 +26,13 @@ On Windows, navigate through the `Control Panel` to the `Services` manager; high On Linux, open a terminal window, assume superuser privileges, and manually stop each service; for example, invoke the following command to stop the pgAgent service: -```text +```shell service edb-pgagent-14 stop ``` After stopping any services that are currently connected to EDB Postgres Advanced Server, you can use the EDB-PSQL command line client to drop and create a database. When the client opens, connect to the `template1` database as the database superuser; if prompted, provide authentication information. Then, use the following command to drop your database: -```text +```sql DROP DATABASE ; ``` @@ -40,7 +40,7 @@ Where `database_name` is the name of the database. Then, create an empty database based on the contents of the `template1` database. -```text +```sql CREATE DATABASE ; ``` @@ -104,19 +104,19 @@ Open a terminal window and manually stop each service at the command line. If you are using Linux, assume the identity of the EDB Postgres Advanced Server cluster owner. (The following example assumes EDB Postgres Advanced Server was installed in the default, compatibility with Oracle database mode, thus assigning `enterprisedb` as the cluster owner. If installed in compatibility with PostgreSQL database mode, `postgres` is the cluster owner.) -```text +```shell su - enterprisedb ``` Enter the EDB Postgres Advanced Server cluster owner password if prompted. Then, set the path to include the location of the `pg_upgrade` executable: -```text +```shell export PATH=$PATH:/usr/edb/as14/bin ``` During the upgrade process, `pg_upgrade` writes a file to the current working directory of the `enterprisedb` user; you must invoke `pg_upgrade` from a directory where the `enterprisedb` user has `write` privileges. After performing the above commands, navigate to a directory in which the `enterprisedb` user has sufficient privileges to write a file. -```text +```shell cd /tmp ``` @@ -128,14 +128,14 @@ If you are using Windows, open a terminal window, assume the identity of the EDB If the `--serviceaccount service_account_user` parameter was specified during the initial installation of EDB Postgres Advanced Server, then `service_account_user` is the EDB Postgres Advanced Server cluster owner and is the user to be given with the `RUNAS` command. -```text +```sql RUNAS /USER:service_account_user "CMD.EXE" SET PATH=%PATH%;C:\Program Files\edb\as14\bin ``` During the upgrade process, `pg_upgrade` writes a file to the current working directory of the service account user; you must invoke `pg_upgrade` from a directory where the service account user has `write` privileges. After performing the above commands, navigate to a directory in which the service account user has sufficient privileges to write a file. -```text +```shell cd %TEMP% ``` @@ -153,14 +153,14 @@ The `PsExec` program must be obtained by downloading `PsTools`, which is availab You can then use the following command to run `CMD.EXE` as `NT AUTHORITY\NetworkService`, and then set the path to the `pg_upgrade` executable. -```text +```shell psexec.exe -u "NT AUTHORITY\NetworkService" CMD.EXE SET PATH=%PATH%;C:\Program Files\edb\as14\bin ``` During the upgrade process, `pg_upgrade` writes a file to the current working directory of the service account user; you must invoke `pg_upgrade` from a directory where the service account user has `write` privileges. After performing the above commands, navigate to a directory in which the service account user has sufficient privileges to write a file. -```text +```shell cd %TEMP% ``` @@ -172,7 +172,7 @@ Before attempting an upgrade, perform a consistency check to assure that the old The following example demonstrates invoking `pg_upgrade` to perform a consistency check on Linux: -```text +```shell pg_upgrade -d /var/lib/edb/as13/data -D /var/lib/edb/as14/data -U enterprisedb -b /usr/edb/as13/bin -B /usr/edb/as14/bin -p 5444 -P 5445 --check @@ -182,7 +182,7 @@ If the command is successful, it returns `*Clusters are compatible*`. If you are using Windows, you must quote any directory names that contain a space: -```text +```shell pg_upgrade.exe -d "C:\Program Files\ PostgresPlus\13AS\data" -D "C:\Program Files\edb\as14\data" -U enterprisedb @@ -202,7 +202,7 @@ After confirming that the clusters are compatible, you can invoke `pg_upgrade` t On Linux: -```text +```shell pg_upgrade -d /var/lib/edb/as13/data -D /var/lib/edb/as14/data -U enterprisedb -b /usr/edb/as13/bin -B /usr/edb/as14/bin -p 5444 -P 5445 @@ -210,7 +210,7 @@ pg_upgrade -d /var/lib/edb/as13/data On Windows: -```text +```shell pg_upgrade.exe -d "C:\Program Files\PostgresPlus\13AS\data" -D "C:\Program Files\edb\as14\data" -U enterprisedb -b "C:\Program Files\PostgresPlus\13AS\bin" @@ -219,7 +219,7 @@ pg_upgrade.exe -d "C:\Program Files\PostgresPlus\13AS\data" `pg_upgrade` displays the progress of the upgrade onscreen: -```text +```shell $ pg_upgrade -d /var/lib/edb/as13/data -D /var/lib/edb/as14/data -U enterprisedb -b /usr/edb/as13/bin -B /usr/edb/as14/bin -p 5444 -P 5445 Performing Consistency Checks @@ -271,7 +271,7 @@ While `pg_upgrade` runs, it may generate SQL scripts that handle special circums You must invoke the scripts after `pg_upgrade` completes. To invoke the scripts, connect to the new cluster as a database superuser with the EDB-PSQL command line client, and invoke each script using the `\i` option: -```text +```shell \i complete_path_to_script/script.sql ``` diff --git a/product_docs/docs/epas/15/upgrading/05_performing_a_minor_version_update_of_an_rpm_installation.mdx b/product_docs/docs/epas/15/upgrading/05_performing_a_minor_version_update_of_an_rpm_installation.mdx index 00e4e590ab9..f97fcf7e6d1 100644 --- a/product_docs/docs/epas/15/upgrading/05_performing_a_minor_version_update_of_an_rpm_installation.mdx +++ b/product_docs/docs/epas/15/upgrading/05_performing_a_minor_version_update_of_an_rpm_installation.mdx @@ -6,19 +6,19 @@ redirects: If you used an RPM package to install EDB Postgres Advanced Server or its supporting components, you can use `yum` to perform a minor version upgrade to a more recent version. To review a list of the package updates that are available for your system, open a command line, assume root privileges, and enter the command: -```text +```shell yum check-update ``` Where `package_name` is the search term for which you want to search for updates. You can include wildcard values in the search term. To use `yum update` to install an updated package, use the command: -```text +```shell yum update ``` Where `package_name` is the name of the package you wish to update. Include wild-card values in the update command to update multiple related packages with a single command. For example, use the following command to update all packages whose names include the expression `edb`: -```text +```shell yum update edb* ``` From 9151202a33059a5a57b19fd3f90a8167f923a6d5 Mon Sep 17 00:00:00 2001 From: Chris Estes <106166814+ccestes@users.noreply.github.com> Date: Wed, 20 Jul 2022 15:20:51 -0400 Subject: [PATCH 16/77] updated linux install topics --- .../docs/epas/15/installing/index.mdx | 2 +- .../component_locations.mdx | 64 ++++---- ...installing_epas_using_local_repository.mdx | 12 +- ...naging_an_advanced_server_installation.mdx | 80 ++++----- .../linux_install_details/rpm_packages.mdx | 152 +++++++++--------- .../installing/linux_ppc64le/epas_rhel_8.mdx | 13 +- .../installing/linux_ppc64le/epas_sles_12.mdx | 5 +- .../installing/linux_ppc64le/epas_sles_15.mdx | 5 +- .../installing/linux_x86_64/epas_centos_7.mdx | 13 +- .../linux_x86_64/epas_debian_11.mdx | 1 - .../linux_x86_64/epas_other_linux_8.mdx | 16 +- .../installing/linux_x86_64/epas_rhel_7.mdx | 16 +- .../installing/linux_x86_64/epas_rhel_8.mdx | 13 +- .../installing/linux_x86_64/epas_sles_12.mdx | 5 +- .../installing/linux_x86_64/epas_sles_15.mdx | 5 +- .../linux_x86_64/epas_ubuntu_22.mdx | 88 ++++++++++ .../epas/15/installing/linux_x86_64/index.mdx | 1 + .../enabling_core_dump.mdx | 18 +-- .../epas/15/uninstalling/linux_uninstall.mdx | 8 +- .../15/uninstalling/windows_uninstall.mdx | 4 +- 20 files changed, 303 insertions(+), 218 deletions(-) create mode 100644 product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_22.mdx diff --git a/product_docs/docs/epas/15/installing/index.mdx b/product_docs/docs/epas/15/installing/index.mdx index bbce947f0d6..4e768cb8cb0 100644 --- a/product_docs/docs/epas/15/installing/index.mdx +++ b/product_docs/docs/epas/15/installing/index.mdx @@ -26,7 +26,7 @@ Select a link to access the applicable installation instructions: ### SUSE Linux Enterprise (SLES) - [SLES 15](linux_x86_64/epas_sles_15), [SLES 12](linux_x86_64/epas_sles_12) ### Debian and derivatives -- [Ubuntu 20.04](linux_x86_64/epas_ubuntu_20), [Ubuntu 18.04](linux_x86_64/epas_ubuntu_18) +- [Ubuntu 22.04](linux_x86_64/epas_ubuntu_22), [Ubuntu 20.04](linux_x86_64/epas_ubuntu_20), [Ubuntu 18.04](linux_x86_64/epas_ubuntu_18) - [Debian 11](linux_x86_64/epas_debian_11), [Debian 10](linux_x86_64/epas_debian_10) ## [Linux on IBM Power (ppc64le)](linux_ppc64le) ### Red Hat Enterprise Linux (RHEL) diff --git a/product_docs/docs/epas/15/installing/linux_install_details/component_locations.mdx b/product_docs/docs/epas/15/installing/linux_install_details/component_locations.mdx index 7010acb2381..84860ed0702 100644 --- a/product_docs/docs/epas/15/installing/linux_install_details/component_locations.mdx +++ b/product_docs/docs/epas/15/installing/linux_install_details/component_locations.mdx @@ -15,24 +15,24 @@ The RPM installers place EDB Postgres Advanced Server components in the director | Component | Location | | --------------------------------- | ------------------------------------------ | -| Executables | `/usr/edb/as14/bin` | -| Libraries | `/usr/edb/as14/lib` | -| Cluster configuration files | `/etc/edb/as14` | -| Documentation | `/usr/edb/as14/share/doc` | -| Contrib | `/usr/edb/as14/share/contrib` | -| Data | `/var/lib/edb/as14/data` | -| Logs | `/var/log/as14` | -| Lock files | `/var/lock/as14` | -| Log rotation file | `/etc/logrotate.d/as14` | -| Sudo configuration file | `/etc/sudoers.d/as14` | -| Binary to access VIP without sudo | `/usr/edb/as14/bin/secure` | -| Backup area | `/var/lib/edb/as14/backups` | -| Templates | `/usr/edb/as14/share` | -| Procedural Languages | `/usr/edb/as14/lib or /usr/edb/as14/lib64` | -| Development Headers | `/usr/edb/as14/include` | -| Shared data | `/usr/edb/as14/share` | -| Regression tests | `/usr/edb/as14/lib/pgxs/src/test/regress` | -| SGML Documentation | `/usr/edb/as14/share/doc` | +| Executables | `/usr/edb/as15/bin` | +| Libraries | `/usr/edb/as15/lib` | +| Cluster configuration files | `/etc/edb/as15` | +| Documentation | `/usr/edb/as15/share/doc` | +| Contrib | `/usr/edb/as15/share/contrib` | +| Data | `/var/lib/edb/as15/data` | +| Logs | `/var/log/as15` | +| Lock files | `/var/lock/as15` | +| Log rotation file | `/etc/logrotate.d/as15` | +| Sudo configuration file | `/etc/sudoers.d/as15` | +| Binary to access VIP without sudo | `/usr/edb/as15/bin/secure` | +| Backup area | `/var/lib/edb/as15/backups` | +| Templates | `/usr/edb/as15/share` | +| Procedural Languages | `/usr/edb/as15/lib or /usr/edb/as15/lib64` | +| Development Headers | `/usr/edb/as15/include` | +| Shared data | `/usr/edb/as15/share` | +| Regression tests | `/usr/edb/as15/lib/pgxs/src/test/regress` | +| SGML Documentation | `/usr/edb/as15/share/doc` | ## Debian/Ubuntu Locations @@ -40,21 +40,21 @@ The Debian package manager places EDB Postgres Advanced Server and supporting co | Component | Location | | -------------------------------- | --------------------------------------------------------------------------------------- | -| Server | `/usr/lib/edb-as/14/` | -| Data and Configuration Directory | `/var/lib/edb-as/14/main`

`/etc/edb-as/14/main/` | -| pgAgent | `/usr/lib/edb-as/14` | +| Server | `/usr/lib/edb-as/15/` | +| Data and Configuration Directory | `/var/lib/edb-as/15/main`

`/etc/edb-as/15/main/` | +| pgAgent | `/usr/lib/edb-as/15` | | Pgpool | `/usr/edb/pgpool4.1/` | -| Postgis | `/usr/lib/edb-as/14/` | -| PGSNMPD | `/usr/lib/edb-as/14` | -| Slony Replication | `/usr/lib/edb-as/14` | -| pgBouncer | `/usr/edb/pgbouncer1.14/` | -| pgBouncer Configuration Files | `/etc/edb/pgbouncer1.14/pgbouncer.ini`

`/etc/edb/pgbouncer1.14/userlist.txt` | -| SQL-Profiler | `/usr/lib/edb-as/14/lib` | -| SQL-Protect | `/usr/lib/edb-as/14/lib` | -| SSLUTILS | `/usr/lib/edb-as/14/lib` | -| PL-PERL | `/usr/lib/edb-as/14/lib` | -| PL-PYTHON | `/usr/lib/edb-as/14/lib` | -| PLTCL | `/usr/lib/edb-as/14/lib` | +| Postgis | `/usr/lib/edb-as/15/` | +| PGSNMPD | `/usr/lib/edb-as/15` | +| Slony Replication | `/usr/lib/edb-as/15` | +| pgBouncer | `/usr/edb/pgbouncer1.15/` | +| pgBouncer Configuration Files | `/etc/edb/pgbouncer1.15/pgbouncer.ini`

`/etc/edb/pgbouncer1.15/userlist.txt` | +| SQL-Profiler | `/usr/lib/edb-as/15/lib` | +| SQL-Protect | `/usr/lib/edb-as/15/lib` | +| SSLUTILS | `/usr/lib/edb-as/15/lib` | +| PL-PERL | `/usr/lib/edb-as/15/lib` | +| PL-PYTHON | `/usr/lib/edb-as/15/lib` | +| PLTCL | `/usr/lib/edb-as/15/lib` | | EFM | `/usr/edb/efm-4.1/` | | JDBC | `/usr/edb/jdbc` | | MTK | `/usr/edb/migrationtoolkit/` | diff --git a/product_docs/docs/epas/15/installing/linux_install_details/installing_epas_using_local_repository.mdx b/product_docs/docs/epas/15/installing/linux_install_details/installing_epas_using_local_repository.mdx index 7dc2135df59..cd9d9e6742a 100644 --- a/product_docs/docs/epas/15/installing/linux_install_details/installing_epas_using_local_repository.mdx +++ b/product_docs/docs/epas/15/installing/linux_install_details/installing_epas_using_local_repository.mdx @@ -39,7 +39,7 @@ To create and use a local repository, you must: - Sync the RPM packages and create the repository. ```text - reposync -r edbas14 -p /srv/repos + reposync -r edbas15 -p /srv/repos createrepo /srv/repos ``` @@ -48,9 +48,9 @@ To create and use a local repository, you must: - On each isolated database server, configure `yum` or `dnf` to pull updates from the mirrored repository on your local network. For example, you might create a repository configuration file called `/etc/yum.repos.d/edb-repo` with connection information that specifies: ```text - [edbas14] - name=EnterprisEDB Postgres Advanced Server 14 - baseurl=https://yum.your_domain.com/edbas14 + [edbas15] + name=EnterprisEDB Postgres Advanced Server 15 + baseurl=https://yum.your_domain.com/edbas15 enabled=1 gpgcheck=0 ``` @@ -60,13 +60,13 @@ After specifying the location and connection information for your local reposito - On RHEL or CentOS 7: ```text - yum -y install edb-as14-server + yum -y install edb-as15-server ``` - On RHEL or Rocky Linux or AlmaLinux 8: ```text - dnf -y install edb-as14-server + dnf -y install edb-as15-server ``` For more information about creating a local `yum` repository, visit: diff --git a/product_docs/docs/epas/15/installing/linux_install_details/managing_an_advanced_server_installation.mdx b/product_docs/docs/epas/15/installing/linux_install_details/managing_an_advanced_server_installation.mdx index e2a2e4cebe5..5968cb43a7e 100644 --- a/product_docs/docs/epas/15/installing/linux_install_details/managing_an_advanced_server_installation.mdx +++ b/product_docs/docs/epas/15/installing/linux_install_details/managing_an_advanced_server_installation.mdx @@ -18,11 +18,11 @@ The following table lists the names of the services that control EDB Postgres Ad | EDB Postgres Advanced Server component name | Linux service Name | Debian service name | | ------------------------------ | ------------------------ | --------------------------------------- | -| EDB Postgres Advanced Server | edb-as-14 | edb-as@14-main | -| pgAgent | edb-pgagent-14 | edb-as14-pgagent | -| PgBouncer | edb-pgbouncer-1.14 | edb-pgbouncer114 | +| EDB Postgres Advanced Server | edb-as-15 | edb-as@15-main | +| pgAgent | edb-pgagent-15 | edb-as15-pgagent | +| PgBouncer | edb-pgbouncer-1.15 | edb-pgbouncer115 | | pgPool-II | edb-pgpool-4.1 | edb-pgpool41 | -| Slony | edb-slony-replication-14 | edb-as14-slony-replication | +| Slony | edb-slony-replication-15 | edb-as15-slony-replication | | EFM | edb-efm-4.0 | edb-efm-4.0 | You can use the Linux command line to control EDB Postgres Advanced Server's database server and the services of EDB Postgres Advanced Server's supporting components. The commands that control the EDB Postgres Advanced Server service on a Linux platform are host specific. @@ -55,31 +55,31 @@ If your installation of EDB Postgres Advanced Server resides on version 18.04 | - Discover the current status of a service: ```text - /usr/edb/as14/bin/epas_ctlcluster 14 main status + /usr/edb/as15/bin/epas_ctlcluster 15 main status ``` - Stop a service: ```text - /usr/edb/as14/bin/epas_ctlcluster 14 main stop + /usr/edb/as15/bin/epas_ctlcluster 15 main stop ``` - Restart a service: ```text - /usr/edb/as14/bin/epas_ctlcluster 14 main restart + /usr/edb/as15/bin/epas_ctlcluster 15 main restart ``` - Reload a service: ```text - /usr/edb/as14/bin/epas_ctlcluster 14 main reload + /usr/edb/as15/bin/epas_ctlcluster 15 main reload ``` - Control the component services: ```text - systemctl restart edb-as@14-main + systemctl restart edb-as@15-main ``` ### Using pg_ctl to control EDB Postgres Advanced Server @@ -142,7 +142,7 @@ Where: ### Managing authentication on a Debian or Ubuntu host -By default, the server is running with the peer or md5 permission on a Debian or Ubuntu host. You can change the authentication method by modifying the `pg_hba.conf` file, located under `/etc/edb-as/14/main/`. +By default, the server is running with the peer or md5 permission on a Debian or Ubuntu host. You can change the authentication method by modifying the `pg_hba.conf` file, located under `/etc/edb-as/15/main/`. For more information about modifying the `pg_hba.conf` file, see the PostgreSQL core documentation available at: @@ -173,18 +173,18 @@ To invoke `initdb` on a RHEL/CentOS 7.x or Rocky Linux/AlmaLinux 8.x system, wit su - root ``` -To initialize a cluster with the non-default values, you can use the `PGSETUP_INITDB_OPTIONS` environment variable by invoking the `edb-as-14-setup` cluster initialization script that resides under `EPAS_Home/bin`. +To initialize a cluster with the non-default values, you can use the `PGSETUP_INITDB_OPTIONS` environment variable by invoking the `edb-as-15-setup` cluster initialization script that resides under `EPAS_Home/bin`. To invoke `initdb` export the `PGSETUP_INITDB_OPTIONS` environment variable with the following command: ```text -PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as14/bin/edb-as-14-setup initdb +PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as15/bin/edb-as-15-setup initdb ``` After creating the cluster, use `systemctl` to start, stop, or restart the service: ```text -systemctl { start | stop | restart } edb-as-14 +systemctl { start | stop | restart } edb-as-15 ``` #### On Debian 10.x or Ubuntu 18.04 | 20.04 @@ -192,13 +192,13 @@ systemctl { start | stop | restart } edb-as-14 You can initialize multiple clusters using the bundled scripts. To create a new cluster, assume `root` privileges, and invoke the bundled script: ```text -/usr/bin/epas_createcluster 14 main2 +/usr/bin/epas_createcluster 15 main2 ``` To start a new cluster, use the following command: ```text -/usr/bin/epas_ctlcluster 14 main2 start   +/usr/bin/epas_ctlcluster 15 main2 start   ``` To list all the available clusters, use the following command: @@ -208,7 +208,7 @@ To list all the available clusters, use the following command: ``` !!! Note - The data directory is created under `/var/lib/edb-as/14/main2` and configuration directory is created under `/etc/edb-as/14/main/`. + The data directory is created under `/var/lib/edb-as/15/main2` and configuration directory is created under `/etc/edb-as/15/main/`. ## Specifying cluster options with INITDBOPTS @@ -314,35 +314,35 @@ Where `path_to_initdb_installation_directory` specifies the location of the `ini ### On RHEL/CentOS 7.x or RHEL/Rocky Linux/AlmaLinux 8.x -On a RHEL/CentOS 7.x or RHEL/Rocky Linux/AlmaLinux 8.x host, the unit file is named `edb-as-14.service` and resides in `/usr/lib/systemd/system`. The unit file contains references to the location of the EDB Postgres Advanced Server `data` directory. You should avoid making any modifications directly to the unit file because it may be overwritten during package upgrades. +On a RHEL/CentOS 7.x or RHEL/Rocky Linux/AlmaLinux 8.x host, the unit file is named `edb-as-15.service` and resides in `/usr/lib/systemd/system`. The unit file contains references to the location of the EDB Postgres Advanced Server `data` directory. You should avoid making any modifications directly to the unit file because it may be overwritten during package upgrades. -By default, data files reside under `/var/lib/edb/as14/data` directory. To use a data directory that resides in a non-default location, perform the following steps: +By default, data files reside under `/var/lib/edb/as15/data` directory. To use a data directory that resides in a non-default location, perform the following steps: - Create a copy of the unit file under the `/etc` directory: ```text - cp /usr/lib/systemd/system/edb-as-14.service /etc/systemd/system/ + cp /usr/lib/systemd/system/edb-as-15.service /etc/systemd/system/ ``` -- After copying the unit file to the new location, create the service file `/etc/systemd/system/edb-as-14.service`. +- After copying the unit file to the new location, create the service file `/etc/systemd/system/edb-as-15.service`. -- Update the following values with new location of data directory in the `/lib/systemd/system/edb-as-14.service` file: +- Update the following values with new location of data directory in the `/lib/systemd/system/edb-as-15.service` file: ```text - Environment=PGDATA=/var/lib/edb/as14/data - PIDFile=/var/lib/edb/as14/data/postmaster.pid + Environment=PGDATA=/var/lib/edb/as15/data + PIDFile=/var/lib/edb/as15/data/postmaster.pid ``` -- Delete the entire content of `/etc/systemd/system/edb-as-14.service` file, except the following line: +- Delete the entire content of `/etc/systemd/system/edb-as-15.service` file, except the following line: ```text - .include /lib/systemd/system/edb-as-14.service + .include /lib/systemd/system/edb-as-15.service ``` - Run the following command to initialize the cluster at the new location: ```text - PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as14/bin/edb-as-14-setup initdb + PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as15/bin/edb-as-15-setup initdb ``` - Use the following command to reload `systemd`, updating the modified service scripts: @@ -354,17 +354,17 @@ By default, data files reside under `/var/lib/edb/as14/data` directory. To use a - Start the EDB Postgres Advanced Server service with the following command: ```text - systemctl start edb-as-14 + systemctl start edb-as-15 ``` ### Configuring SELinux policy to change the data directory location on RHEL/CentOS 7.x or RHEL/Rocky Linux/AlmaLinux 8.x -By default, the data files resides under `/var/lib/edb/as14/data` directory. To change the default data directory location depending on individual environment preferences, you must configure the SELinux policy and perform the following steps: +By default, the data files resides under `/var/lib/edb/as15/data` directory. To change the default data directory location depending on individual environment preferences, you must configure the SELinux policy and perform the following steps: - Stop the server using the following command: ```text - systemctl stop edb-as-14 + systemctl stop edb-as-15 ``` - Check the status of SELinux using the `getenforce` or `sestatus` command: @@ -388,7 +388,7 @@ By default, the data files resides under `/var/lib/edb/as14/data` directory. To - Use the following command to view the SELinux context of the default database location: ```text - ls -lZ /var/lib/edb/as14/data + ls -lZ /var/lib/edb/as15/data drwx------. enterprisedb enterprisedb unconfined_u:object_r:var_lib_t:s0 log ``` @@ -401,13 +401,13 @@ By default, the data files resides under `/var/lib/edb/as14/data` directory. To - Use the following command to move the data directory to `/opt/edb`: ```text - mv /var/lib/edb/as14/data /opt/edb/ + mv /var/lib/edb/as15/data /opt/edb/ ``` -- Create a file `edb-as-14.service` under `/etc/systemd/system` directory to include the location of a new data directory: +- Create a file `edb-as-15.service` under `/etc/systemd/system` directory to include the location of a new data directory: ```text - .include /lib/systemd/system/edb-as-14.service + .include /lib/systemd/system/edb-as-15.service [Service] Environment=PGDATA=/opt/edb/data PIDFile=/opt/edb/data/postmaster.pid @@ -416,7 +416,7 @@ By default, the data files resides under `/var/lib/edb/as14/data` directory. To - Use the `semanage` utility to set the context mapping for `/opt/edb/`. The mapping is written to `/etc/selinux/targeted/contexts/files/file.contexts.local` file. ```text - semanage fcontext --add --equal /var/lib/edb/as14/data /opt/edb + semanage fcontext --add --equal /var/lib/edb/as15/data /opt/edb ``` - Apply the context mapping using `restorecon` utility: @@ -434,7 +434,7 @@ By default, the data files resides under `/var/lib/edb/as14/data` directory. To - Now, the `/opt/edb` location has been labeled correctly with the context, use the following command to start the service: ```text - systemctl start edb-as-14 + systemctl start edb-as-15 ``` ## Starting multiple postmasters with different clusters @@ -443,14 +443,14 @@ You can configure EDB Postgres Advanced Server to use multiple postmasters, each ### On RHEL/CentOS 7.x or RHEL/Rocky Linux/AlmaLinux 8.x -The `edb-as14-server-core` RPM for version 7.x | 8.x contains a unit file that starts the EDB Postgres Advanced Server instance. The file allows you to start multiple services, with unique `data` directories and that monitor different ports. You must have `root` access to invoke or modify the script. +The `edb-as15-server-core` RPM for version 7.x | 8.x contains a unit file that starts the EDB Postgres Advanced Server instance. The file allows you to start multiple services, with unique `data` directories and that monitor different ports. You must have `root` access to invoke or modify the script. The example that follows creates an EDB Postgres Advanced Server installation with two instances; the secondary instance is named `secondary`: - Make a copy of the default file with the new name. As noted at the top of the file, all modifications must reside under `/etc`. You must pick a name that is not already used in `/etc/systemd/system`. ```text - cp /usr/lib/systemd/system/edb-as-14.service /etc/systemd/system/secondary-edb-as-14.service + cp /usr/lib/systemd/system/edb-as-15.service /etc/systemd/system/secondary-edb-as-15.service ``` - Edit the file, changing `PGDATA` to point to the new `data` directory that you will create the cluster against. @@ -460,7 +460,7 @@ The example that follows creates an EDB Postgres Advanced Server installation wi - Run `initdb`, specifying the setup script: ```text - /usr/edb/as14/bin/edb-as-14-setup initdb secondary-edb-as-14 + /usr/edb/as15/bin/edb-as-15-setup initdb secondary-edb-as-15 ``` - Edit the `postgresql.conf` file for the new instance, specifying the port, the IP address, TCP/IP settings, etc. @@ -468,11 +468,11 @@ The example that follows creates an EDB Postgres Advanced Server installation wi - Make sure that new cluster runs after a reboot: ```text - systemctl enable secondary-edb-as-14 + systemctl enable secondary-edb-as-15 ``` - Start the second cluster with the following command: ```text - systemctl start secondary-edb-as-14 + systemctl start secondary-edb-as-15 ``` diff --git a/product_docs/docs/epas/15/installing/linux_install_details/rpm_packages.mdx b/product_docs/docs/epas/15/installing/linux_install_details/rpm_packages.mdx index b112d003293..e9126771f3e 100644 --- a/product_docs/docs/epas/15/installing/linux_install_details/rpm_packages.mdx +++ b/product_docs/docs/epas/15/installing/linux_install_details/rpm_packages.mdx @@ -33,42 +33,42 @@ Note: The available package list is subject to change. | Package name | Package installs | | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| edb-as14-server | This package installs core components of the EDB Postgres Advanced Server database server. | -| edb-as14-server-client | Client programs and utilities that you can use to access and manage EDB Postgres Advanced Server. | -| edb-as14-server-contrib | Installs contributed tools and utilities that are distributed with EDB Postgres Advanced Server. Files for these modules are installed in:

Documentation: `/usr/edb/as14/share/doc`

Loadable modules: `/usr/edb/as14/lib`

Binaries: `/usr/edb/as14/bin` | -| edb-as14-server-core | Includes the programs needed to create the core functionality behind the EDB Postgres Advanced Server database. | -| edb-as14-server-devel | Installs the header files and libraries needed to compile C or C++ applications that directly interact with an EDB Postgres Advanced Server server and the ecpg or ecpgPlus C preprocessor. | -| edb-as14-server-docs | Installs the readme file. | -| edb-as14-server-edb-modules | Installs supporting modules for EDB Postgres Advanced Server | -| edb-as14-server-indexadvisor | Installs EDB Postgres Advanced Server's Index Advisor feature. The Index Advisor utility helps determine which columns you should index to improve performance in a given workload. | -| edb-as14-server-libs | Provides the essential shared libraries for any EDB Postgres Advanced Server client program or interface. | -| edb-as14-server-llvmjit | This package contains support for Just in Time (JIT) compiling parts of EDBAS queries. | -| edb-as14-server-pldebugger | This package implements an API for debugging PL/pgSQL functions on EDB Postgres Advanced Server. | -| edb-as14-server-plperl | Installs the PL/Perl procedural language for EDB Postgres Advanced Server. The `edb-as14-server-plperl` package is dependent on the platform-supplied version of Perl. | -| edb-as14-server-plpython3 | Installs the PL/Python procedural language for EDB Postgres Advanced Server. The PL/Python2 support is no longer available from EDB Postgres Advanced Server version 14 onwards. | -| edb-as14-server-pltcl | Installs the PL/Tcl procedural language for EDB Postgres Advanced Server. The `edb-as14-pltcl` package is dependent on the platform-supplied version of TCL. | -| edb-as14-server-sqlprofiler | This package installs EDB Postgres Advanced Server's SQL Profiler feature. SQL Profiler helps identify and optimize SQL code. | -| edb-as14-server-sqlprotect | This package installs EDB Postgres Advanced Server's SQL Protect feature. SQL Protect provides protection against SQL injection attacks. | -| edb-as14-server-sslutils | This package installs functionality that provides SSL support. | -| edb-as14-server-cloneschema | This package installs the EDB Clone Schema extension. For more information about EDB Clone Schema, see the *EDB Postgres Advanced Server Guide*. | -| edb-as14-server-parallel-clone | This package installs functionality that supports the EDB Clone Schema extension. | -| edb-as14-pgagent | Installs pgAgent; pgAgent is a job scheduler for EDB Postgres Advanced Server. Before installing this package, you must install EPEL; for detailed information about installing EPEL, see [Linux installation troubleshooting](/epas/latest/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux/). | -| edb-as14-edbplus | The `edb-edbplus` package contains the files required to install the EDB\*Plus command line client. EDB\*Plus commands are compatible with Oracle's SQL\*Plus. | -| edb-as14-pgsnmpd | SNMP (Simple Network Management Protocol) is a protocol that allows you to supervise an apparatus connected to the network. | -| edb-as14-pgpool41-extensions | This package creates pgPool extensions required by the server for use with pgpool. | -| edb-as14-postgis3 | Installs POSTGIS meta RPMs. | -| edb-as14-postgis3-core | This package provides support for geographic objects to the PostgreSQL object-relational database. In effect, PostGIS "spatially enables" the PostgreSQL server, allowing it to be used as a backend spatial database for geographic information systems (GIS), much like ESRI's SDE or Oracle's Spatial extension. | -| edb-as14-postgis3-docs | This package installs pdf documentation of PostGIS. | -| edb-as14-postgis-jdbc | This package installs the essential jdbc driver for PostGIS. | -| edb-as14-postgis3-utils | This package installs the utilities for PostGIS. | -| edb-as14-postgis3-gui | This package provides a GUI for PostGIS. | -| edb-as14-slony-replication | Installs the meta RPM for Slony-I. | -| edb-as14-slony-replication-core | Slony-I builds a primary-standby system that includes all features and capabilities needed to replicate large databases to a reasonably limited number of standby systems. | -| edb-as14-slony-replication-docs | This package contains the Slony project documentation (in pdf form). | -| edb-as14-slony-replication-tools | This package contains the Slony altperl tools and utilities that are useful when deploying Slony replication environments. Before installing this package, you must install EPEL; for detailed information about installing EPEL, see [Linux installation troubleshooting](/epas/latest/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux/). | -| edb-as14-libicu | These packages contain supporting library files. | - -The following table lists the packages for EDB Postgres Advanced Server 14 supporting components. +| edb-as15-server | This package installs core components of the EDB Postgres Advanced Server database server. | +| edb-as15-server-client | Client programs and utilities that you can use to access and manage EDB Postgres Advanced Server. | +| edb-as15-server-contrib | Installs contributed tools and utilities that are distributed with EDB Postgres Advanced Server. Files for these modules are installed in:

Documentation: `/usr/edb/as15/share/doc`

Loadable modules: `/usr/edb/as15/lib`

Binaries: `/usr/edb/as15/bin` | +| edb-as15-server-core | Includes the programs needed to create the core functionality behind the EDB Postgres Advanced Server database. | +| edb-as15-server-devel | Installs the header files and libraries needed to compile C or C++ applications that directly interact with an EDB Postgres Advanced Server server and the ecpg or ecpgPlus C preprocessor. | +| edb-as15-server-docs | Installs the readme file. | +| edb-as15-server-edb-modules | Installs supporting modules for EDB Postgres Advanced Server | +| edb-as15-server-indexadvisor | Installs EDB Postgres Advanced Server's Index Advisor feature. The Index Advisor utility helps determine which columns you should index to improve performance in a given workload. | +| edb-as15-server-libs | Provides the essential shared libraries for any EDB Postgres Advanced Server client program or interface. | +| edb-as15-server-llvmjit | This package contains support for Just in Time (JIT) compiling parts of EDBAS queries. | +| edb-as15-server-pldebugger | This package implements an API for debugging PL/pgSQL functions on EDB Postgres Advanced Server. | +| edb-as15-server-plperl | Installs the PL/Perl procedural language for EDB Postgres Advanced Server. The `edb-as15-server-plperl` package is dependent on the platform-supplied version of Perl. | +| edb-as15-server-plpython3 | Installs the PL/Python procedural language for EDB Postgres Advanced Server. The PL/Python2 support is no longer available from EDB Postgres Advanced Server version 15 onwards. | +| edb-as15-server-pltcl | Installs the PL/Tcl procedural language for EDB Postgres Advanced Server. The `edb-as15-pltcl` package is dependent on the platform-supplied version of TCL. | +| edb-as15-server-sqlprofiler | This package installs EDB Postgres Advanced Server's SQL Profiler feature. SQL Profiler helps identify and optimize SQL code. | +| edb-as15-server-sqlprotect | This package installs EDB Postgres Advanced Server's SQL Protect feature. SQL Protect provides protection against SQL injection attacks. | +| edb-as15-server-sslutils | This package installs functionality that provides SSL support. | +| edb-as15-server-cloneschema | This package installs the EDB Clone Schema extension. For more information about EDB Clone Schema, see the *EDB Postgres Advanced Server Guide*. | +| edb-as15-server-parallel-clone | This package installs functionality that supports the EDB Clone Schema extension. | +| edb-as15-pgagent | Installs pgAgent; pgAgent is a job scheduler for EDB Postgres Advanced Server. Before installing this package, you must install EPEL; for detailed information about installing EPEL, see [Linux installation troubleshooting](/epas/latest/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux/). | +| edb-as15-edbplus | The `edb-edbplus` package contains the files required to install the EDB\*Plus command line client. EDB\*Plus commands are compatible with Oracle's SQL\*Plus. | +| edb-as15-pgsnmpd | SNMP (Simple Network Management Protocol) is a protocol that allows you to supervise an apparatus connected to the network. | +| edb-as15-pgpool41-extensions | This package creates pgPool extensions required by the server for use with pgpool. | +| edb-as15-postgis3 | Installs POSTGIS meta RPMs. | +| edb-as15-postgis3-core | This package provides support for geographic objects to the PostgreSQL object-relational database. In effect, PostGIS "spatially enables" the PostgreSQL server, allowing it to be used as a backend spatial database for geographic information systems (GIS), much like ESRI's SDE or Oracle's Spatial extension. | +| edb-as15-postgis3-docs | This package installs pdf documentation of PostGIS. | +| edb-as15-postgis-jdbc | This package installs the essential jdbc driver for PostGIS. | +| edb-as15-postgis3-utils | This package installs the utilities for PostGIS. | +| edb-as15-postgis3-gui | This package provides a GUI for PostGIS. | +| edb-as15-slony-replication | Installs the meta RPM for Slony-I. | +| edb-as15-slony-replication-core | Slony-I builds a primary-standby system that includes all features and capabilities needed to replicate large databases to a reasonably limited number of standby systems. | +| edb-as15-slony-replication-docs | This package contains the Slony project documentation (in pdf form). | +| edb-as15-slony-replication-tools | This package contains the Slony altperl tools and utilities that are useful when deploying Slony replication environments. Before installing this package, you must install EPEL; for detailed information about installing EPEL, see [Linux installation troubleshooting](/epas/latest/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux/). | +| edb-as15-libicu | These packages contain supporting library files. | + +The following table lists the packages for EDB Postgres Advanced Server 15 supporting components. | Package name | Package installs | | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -79,7 +79,7 @@ The following table lists the packages for EDB Postgres Advanced Server 14 suppo | edb-oci-devel | This package installs the OCI include files; install this package if you are developing C/C++ applications that require these files. | | edb-odbc | This package installs the driver needed for applications to access an EDB Postgres Advanced Server system via ODBC. | | edb-odbc-devel | This package installs the ODBC include files; install this package if you are developing C/C++ applications that require these files. | -| edb-pgbouncer114 | This package contains PgBouncer (a lightweight connection pooler). This package requires the libevent package. | +| edb-pgbouncer115 | This package contains PgBouncer (a lightweight connection pooler). This package requires the libevent package. | | ppas-xdb | This package contains the xDB installer; xDB provides asynchronous cross-database replication. | | ppas-xdb-console | This package provides support for xDB. | | ppas-xdb-libs | This package provides support for xDB. | @@ -121,48 +121,48 @@ apt list edb* | Package name | Package installs | | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| edb-as14-server | Installs core components of the EDB Postgres Advanced Server database server. | -| edb-as14-server-client | Includes client programs and utilities that you can use to access and manage EDB Postgres Advanced Server. | -| edb-as14-server-core | Includes the programs needed to create the core functionality behind the EDB Postgres Advanced Server database. | -| edb-as14-server-dev | The `edb-as14-server-dev` package contains the header files and libraries needed to compile C or C++ applications that directly interact with an EDB Postgres Advanced Server server and the ecpg or ecpgPlus C preprocessor. | -| edb-as14-server-doc | Installs the readme file. | -| edb-as14-server-edb-modules | Installs supporting modules for EDB Postgres Advanced Server. | -| edb-as14-server-indexadvisor | Installs EDB Postgres Advanced Server's Index Advisor feature. The Index Advisor utility helps determine which columns you should index to improve performance in a given workload. | -| edb-as14-server-pldebugger | This package implements an API for debugging PL/pgSQL functions on EDB Postgres Advanced Server. | -| edb-as14-server-plpython3 | Installs the PL/Python procedural language for EDB Postgres Advanced Server. PL/Python2 support is no longer available from EDB Postgres Advanced Server version 14 onwards. | -| edb-as14-server-pltcl | Installs the PL/Tcl procedural language for EDB Postgres Advanced Server. The `edb-as14-pltcl` package is dependent on the platform-supplied version of TCL. | -| edb-as14-server-sqlprofiler | This package installs EDB Postgres Advanced Server's SQL Profiler feature. SQL Profiler helps identify and optimize SQL code. | -| edb-as14-server-sqlprotect | This package installs EDB Postgres Advanced Server's SQL Protect feature. SQL Protect provides protection against SQL injection attacks. | -| edb-as14-server-sslutils | This package installs functionality that provides SSL support. | -| edb-as14-server-cloneschema | This package installs the EDB Clone Schema extension. For more information about EDB Clone Schema, see the *EDB Postgres Advanced Server Guide*. | -| edb-as14-server-parallel-clone | This package installs functionality that supports the EDB Clone Schema extension. | -| edb-as14-edbplus | The `edb-edbplus` package contains the files required to install the EDB\*Plus command line client. EDB\*Plus commands are compatible with Oracle's SQL\*Plus. | -| edb-as14-pgsnmpd | SNMP (Simple Network Management Protocol) is a protocol that allows you to supervise an apparatus connected to the network. | -| edb-as14-pgadmin4 | pgAdmin 4 provides a graphical management interface for EDB Postgres Advanced Server and PostgreSQL databases. | -| edb-as14-pgadmin-apache | Apache support module for pgAdmin 4. | -| edb-as14-pgadmin4-common | pgAdmin 4 supporting files. | -| edb-as14-pgadmin4-doc | pgAdmin 4 documentation module. | -| edb-as14-pgpool41-extensions | This package creates pgPool extensions required by the server. | -| edb-as14-postgis3 | This package installs POSTGIS support for geospatial data. | -| edb-as14-postgis3-scripts | This package installs POSTGIS support for geospatial data. | -| edb-as14-postgis3-doc | This package provides support for POSTGIS. | -| edb-as14-postgis3-gui | This package provides a GUI for POSTGIS. | -| edb-as14-postgis-jdbc | This package provides support for POSTGIS. | -| edb-as14-postgis-scripts | This package provides support for POSTGIS. | -| edb-as14-pgagent | This package installs pgAgent; pgAgent is a job scheduler for EDB Postgres Advanced Server. Before installing this package, you must install EPEL; for detailed information about installing EPEL, see [Linux installation troubleshooting](/epas/latest/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux/). | -| edb-as14-slony-replication | This package installs the meta RPM for Slony-I. | -| edb-as14-slony-replication-core | This package contains core portions of Slony-I to build a primary-standby system that includes all features and capabilities needed to replicate large databases to a reasonably limited number of standby systems. | -| edb-as14-slony-replication-docs | This package contains the Slony project documentation (in pdf form). | -| edb-as14-slony-replication-tools | This package contains the Slony altperl tools and utilities that are useful when deploying Slony replication environments. Before installing this package, you must install EPEL; for detailed information about installing EPEL, see [Linux installation troubleshooting](/epas/latest/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux/). | -| edb-as14-hdfs-fdw | The Hadoop Data Adapter allows you to query and join data from Hadoop environments with your Postgres or EDB Postgres Advanced Server instances. It is YARN Ready certified with HortonWorks, and provides optimizations for performance with predicate pushdown support. | -| edb-as14-hdfs-fdw-doc | Documentation for the Hadoop Data Adapter. | -| edb-as14-mongo-fdw | This EDB EDB Postgres Advanced Server extension implements a Foreign Data Wrapper for MongoDB. | -| edb-as14-mongo-fdw-doc | Documentation for the Foreign Data Wrapper for MongoDB. | -| edb-as14-mysql-fdw | This EDB EDB Postgres Advanced Server extension implements a Foreign Data Wrapper for MySQL. | +| edb-as15-server | Installs core components of the EDB Postgres Advanced Server database server. | +| edb-as15-server-client | Includes client programs and utilities that you can use to access and manage EDB Postgres Advanced Server. | +| edb-as15-server-core | Includes the programs needed to create the core functionality behind the EDB Postgres Advanced Server database. | +| edb-as15-server-dev | The `edb-as15-server-dev` package contains the header files and libraries needed to compile C or C++ applications that directly interact with an EDB Postgres Advanced Server server and the ecpg or ecpgPlus C preprocessor. | +| edb-as15-server-doc | Installs the readme file. | +| edb-as15-server-edb-modules | Installs supporting modules for EDB Postgres Advanced Server. | +| edb-as15-server-indexadvisor | Installs EDB Postgres Advanced Server's Index Advisor feature. The Index Advisor utility helps determine which columns you should index to improve performance in a given workload. | +| edb-as15-server-pldebugger | This package implements an API for debugging PL/pgSQL functions on EDB Postgres Advanced Server. | +| edb-as15-server-plpython3 | Installs the PL/Python procedural language for EDB Postgres Advanced Server. PL/Python2 support is no longer available from EDB Postgres Advanced Server version 15 onwards. | +| edb-as15-server-pltcl | Installs the PL/Tcl procedural language for EDB Postgres Advanced Server. The `edb-as15-pltcl` package is dependent on the platform-supplied version of TCL. | +| edb-as15-server-sqlprofiler | This package installs EDB Postgres Advanced Server's SQL Profiler feature. SQL Profiler helps identify and optimize SQL code. | +| edb-as15-server-sqlprotect | This package installs EDB Postgres Advanced Server's SQL Protect feature. SQL Protect provides protection against SQL injection attacks. | +| edb-as15-server-sslutils | This package installs functionality that provides SSL support. | +| edb-as15-server-cloneschema | This package installs the EDB Clone Schema extension. For more information about EDB Clone Schema, see the *EDB Postgres Advanced Server Guide*. | +| edb-as15-server-parallel-clone | This package installs functionality that supports the EDB Clone Schema extension. | +| edb-as15-edbplus | The `edb-edbplus` package contains the files required to install the EDB\*Plus command line client. EDB\*Plus commands are compatible with Oracle's SQL\*Plus. | +| edb-as15-pgsnmpd | SNMP (Simple Network Management Protocol) is a protocol that allows you to supervise an apparatus connected to the network. | +| edb-as15-pgadmin4 | pgAdmin 4 provides a graphical management interface for EDB Postgres Advanced Server and PostgreSQL databases. | +| edb-as15-pgadmin-apache | Apache support module for pgAdmin 4. | +| edb-as15-pgadmin4-common | pgAdmin 4 supporting files. | +| edb-as15-pgadmin4-doc | pgAdmin 4 documentation module. | +| edb-as15-pgpool41-extensions | This package creates pgPool extensions required by the server. | +| edb-as15-postgis3 | This package installs POSTGIS support for geospatial data. | +| edb-as15-postgis3-scripts | This package installs POSTGIS support for geospatial data. | +| edb-as15-postgis3-doc | This package provides support for POSTGIS. | +| edb-as15-postgis3-gui | This package provides a GUI for POSTGIS. | +| edb-as15-postgis-jdbc | This package provides support for POSTGIS. | +| edb-as15-postgis-scripts | This package provides support for POSTGIS. | +| edb-as15-pgagent | This package installs pgAgent; pgAgent is a job scheduler for EDB Postgres Advanced Server. Before installing this package, you must install EPEL; for detailed information about installing EPEL, see [Linux installation troubleshooting](/epas/latest/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux/). | +| edb-as15-slony-replication | This package installs the meta RPM for Slony-I. | +| edb-as15-slony-replication-core | This package contains core portions of Slony-I to build a primary-standby system that includes all features and capabilities needed to replicate large databases to a reasonably limited number of standby systems. | +| edb-as15-slony-replication-docs | This package contains the Slony project documentation (in pdf form). | +| edb-as15-slony-replication-tools | This package contains the Slony altperl tools and utilities that are useful when deploying Slony replication environments. Before installing this package, you must install EPEL; for detailed information about installing EPEL, see [Linux installation troubleshooting](/epas/latest/troubleshooting/linux_troubleshooting/installation_troubleshooting_linux/). | +| edb-as15-hdfs-fdw | The Hadoop Data Adapter allows you to query and join data from Hadoop environments with your Postgres or EDB Postgres Advanced Server instances. It is YARN Ready certified with HortonWorks, and provides optimizations for performance with predicate pushdown support. | +| edb-as15-hdfs-fdw-doc | Documentation for the Hadoop Data Adapter. | +| edb-as15-mongo-fdw | This EDB EDB Postgres Advanced Server extension implements a Foreign Data Wrapper for MongoDB. | +| edb-as15-mongo-fdw-doc | Documentation for the Foreign Data Wrapper for MongoDB. | +| edb-as15-mysql-fdw | This EDB EDB Postgres Advanced Server extension implements a Foreign Data Wrapper for MySQL. | | edb-pgpool41 | This package contains the pgPool-II installer. The pgpool-II utility package acts as a middleman between client applications and Server database servers. pgpool-II functionality is transparent to client applications; client applications connect to pgpool-II instead of directly to EDB Postgres Advanced Server, and pgpool-II manages the connection. EDB supports the following pgpool-II features:
- Load balancing
- Connection pooling
- High availability
- Connection limits


pgpool-II runs as a service on Linux systems, and is not supported on Windows systems.
| | edb-jdbc | The `edb-jdbc` package includes the .jar files needed for Java programs to access an EDB Postgres Advanced Server database. | | edb-migrationtoolkit | The `edb-migrationtoolkit` package installs Migration Toolkit, facilitating migration to an EDB Postgres Advanced Server database from Oracle, PostgreSQL, MySQL, Sybase and SQL Server. | -| edb-pgbouncer114 | This package contains PgBouncer (a lightweight connection pooler). This package requires the libevent package. | +| edb-pgbouncer115 | This package contains PgBouncer (a lightweight connection pooler). This package requires the libevent package. | | edb-efm40 | This package installs EDB Failover Manager that adds fault tolerance to database clusters to minimize downtime when a primary database fails by keeping data online in high availability configurations. | diff --git a/product_docs/docs/epas/15/installing/linux_ppc64le/epas_rhel_8.mdx b/product_docs/docs/epas/15/installing/linux_ppc64le/epas_rhel_8.mdx index 096562fe97e..84b1e0536f2 100644 --- a/product_docs/docs/epas/15/installing/linux_ppc64le/epas_rhel_8.mdx +++ b/product_docs/docs/epas/15/installing/linux_ppc64le/epas_rhel_8.mdx @@ -56,13 +56,12 @@ Installing the server package creates an operating system user named enterprised This section steps you through getting started with your cluster including logging in, ensuring the installation and initial configuration was successful, connecting to your cluster, and creating the user password. ```shell -# Initialize the database cluster -PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as14/bin/edb-as-14-setup initdb - -# Start the database cluster -systemctl start edb-as-14 - -# To work in your cluster, login as the enterprisedb user +# Initialize the database cluster: +PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as15/bin/edb-as-15-setup initdb + +# Start the database cluster: +systemctl start edb-as-15 +# To work in your cluster, login as `enterprisedb` user: su - enterprisedb # Connect to the database server using the psql command line client diff --git a/product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_12.mdx b/product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_12.mdx index dae84d047bc..0ef303020b7 100644 --- a/product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_12.mdx +++ b/product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_12.mdx @@ -52,11 +52,10 @@ This section steps you through getting started with your cluster including loggi ```shell # Initialize the database cluster -PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as14/bin/edb-as-14-setup initdb +PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as15/bin/edb-as-15-setup initdb # Start the database cluster -systemctl start edb-as-14 - +systemctl start edb-as-15 # To work in your cluster, login as the enterprisedb user su - enterprisedb diff --git a/product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_15.mdx b/product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_15.mdx index 6f0cf1d6ce8..c3dd78cb01b 100644 --- a/product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_15.mdx +++ b/product_docs/docs/epas/15/installing/linux_ppc64le/epas_sles_15.mdx @@ -51,11 +51,10 @@ This section steps you through getting started with your cluster including loggi ```shell # Initialize the database cluster -PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as14/bin/edb-as-14-setup initdb +PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as15/bin/edb-as-15-setup initdb # Start the database cluster -systemctl start edb-as-14 - +systemctl start edb-as-15 # To work in your cluster, login as the enterprisedb user su - enterprisedb diff --git a/product_docs/docs/epas/15/installing/linux_x86_64/epas_centos_7.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_centos_7.mdx index 576b698ac73..31dee00fd54 100644 --- a/product_docs/docs/epas/15/installing/linux_x86_64/epas_centos_7.mdx +++ b/product_docs/docs/epas/15/installing/linux_x86_64/epas_centos_7.mdx @@ -50,13 +50,12 @@ Installing the server package creates an operating system user named enterprised This section steps you through getting started with your cluster including logging in, ensuring the installation and initial configuration was successful, connecting to your cluster, and creating the user password. ```shell -# Initialize the database cluster -PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as14/bin/edb-as-14-setup initdb - -# Start the database cluster -systemctl start edb-as-14 - -# To work in your cluster, login as the enterprisedb user +# Initialize the database cluster: +PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as15/bin/edb-as-15-setup initdb + +# Start the database cluster: +systemctl start edb-as-15 +# To work in your cluster, login as `enterprisedb` user: su - enterprisedb # Connect to the database server using the psql command line client diff --git a/product_docs/docs/epas/15/installing/linux_x86_64/epas_debian_11.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_debian_11.mdx index 8149dc774b9..754b0145f93 100644 --- a/product_docs/docs/epas/15/installing/linux_x86_64/epas_debian_11.mdx +++ b/product_docs/docs/epas/15/installing/linux_x86_64/epas_debian_11.mdx @@ -40,7 +40,6 @@ Where `package_name` can be any of the available packages from the [available pa This section steps you through getting started with your cluster including logging in, ensuring the installation was successful, connecting to your cluster, and creating the user password. ```shell - # To work in your cluster, login as the enterprisedb user su - enterprisedb diff --git a/product_docs/docs/epas/15/installing/linux_x86_64/epas_other_linux_8.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_other_linux_8.mdx index 27b37daaf1a..b73a5f78899 100644 --- a/product_docs/docs/epas/15/installing/linux_x86_64/epas_other_linux_8.mdx +++ b/product_docs/docs/epas/15/installing/linux_x86_64/epas_other_linux_8.mdx @@ -35,6 +35,9 @@ sudo dnf -y install edb-as-server Where `` is the version of the EDB Postgres Advanced server you are installing. For example, if you are installing version 14, the package name would be `edb-as14-server`. +```text +dnf -y install edb-as15-server +``` To install an individual component: ```shell @@ -50,13 +53,12 @@ Installing the server package creates an operating system user named enterprised This section steps you through getting started with your cluster including logging in, ensuring the installation and initial configuration was successful, connecting to your cluster, and creating the user password. ```shell -# Initialize the database cluster -PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as14/bin/edb-as-14-setup initdb - -# Start the database cluster -systemctl start edb-as-14 - -# To work in your cluster, login as the enterprisedb user +# Initialize the database cluster: +PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as15/bin/edb-as-15-setup initdb + +# Start the database cluster: +systemctl start edb-as-15 +# To work in your cluster, login as `enterprisedb` user: su - enterprisedb # Connect to the database server using the psql command line client diff --git a/product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_7.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_7.mdx index 52bee9f6c2e..8e594373e82 100644 --- a/product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_7.mdx +++ b/product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_7.mdx @@ -35,6 +35,9 @@ sudo yum -y install edb-as-server Where `` is the version of the EDB Postgres Advanced server you are installing. For example, if you are installing version 14, the package name would be `edb-as14-server`. +```text +yum -y install edb-as15-server +``` To install an individual component: ```shell @@ -50,13 +53,12 @@ Installing the server package creates an operating system user named enterprised This section steps you through getting started with your cluster including logging in, ensuring the installation and initial configuration was successful, connecting to your cluster, and creating the user password. ```shell -# Initialize the database cluster -PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as14/bin/edb-as-14-setup initdb - -# Start the database cluster -systemctl start edb-as-14 - -# To work in your cluster, login as the enterprisedb user +# Initialize the database cluster: +PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as15/bin/edb-as-15-setup initdb + +# Start the database cluster: +systemctl start edb-as-15 +# To work in your cluster, login as `enterprisedb` user: su - enterprisedb # Connect to the database server using the psql command line client diff --git a/product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_8.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_8.mdx index 0597c55e417..52b43d524d9 100644 --- a/product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_8.mdx +++ b/product_docs/docs/epas/15/installing/linux_x86_64/epas_rhel_8.mdx @@ -54,13 +54,12 @@ Installing the server package creates an operating system user named enterprised This section steps you through getting started with your cluster including logging in, ensuring the installation and initial configuration was successful, connecting to your cluster, and creating the user password. ```shell -# Initialize the database cluster -PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as14/bin/edb-as-14-setup initdb - -# Start the database cluster -systemctl start edb-as-14 - -# To work in your cluster, login as the enterprisedb user +# Initialize the database cluster: +PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as15/bin/edb-as-15-setup initdb + +# Start the database cluster: +systemctl start edb-as-15 +# To work in your cluster, login as `enterprisedb` user: su - enterprisedb # Connect to the database server using the psql command line client diff --git a/product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_12.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_12.mdx index 14e3858b91b..0ffe6770c80 100644 --- a/product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_12.mdx +++ b/product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_12.mdx @@ -52,11 +52,10 @@ This section steps you through getting started with your cluster including loggi ```shell # Initialize the database cluster -PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as14/bin/edb-as-14-setup initdb +PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as15/bin/edb-as-15-setup initdb # Start the database cluster -systemctl start edb-as-14 - +systemctl start edb-as-15 # To work in your cluster, login as the enterprisedb user su - enterprisedb diff --git a/product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_15.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_15.mdx index 19369b04f54..6db5c11f495 100644 --- a/product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_15.mdx +++ b/product_docs/docs/epas/15/installing/linux_x86_64/epas_sles_15.mdx @@ -51,11 +51,10 @@ This section steps you through getting started with your cluster including loggi ```shell # Initialize the database cluster -PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as14/bin/edb-as-14-setup initdb +PGSETUP_INITDB_OPTIONS="-E UTF-8" /usr/edb/as15/bin/edb-as-15-setup initdb # Start the database cluster -systemctl start edb-as-14 - +systemctl start edb-as-15 # To work in your cluster, login as the enterprisedb user su - enterprisedb diff --git a/product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_22.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_22.mdx new file mode 100644 index 00000000000..4284804db80 --- /dev/null +++ b/product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_22.mdx @@ -0,0 +1,88 @@ +--- +navTitle: Ubuntu 22.04 +title: Installing EDB Postgres Advanced Server on Ubuntu 22.04 x86_64 +--- + +Before you begin the installation process, log in as superuser. + +```shell +# To log in as a superuser: +sudo su - +``` + +## Set up the repository + +Setting up the repository is a one-time task. If you have already set up your repository, you do not need to perform this step. If you do need to set up the repository, you must register with EDB. To receive credentials for the EDB repository, visit: [Repository Access Request](https://www.enterprisedb.com/repository-access-request). + +```shell +# Set up the EDB repository +echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list + +# Replace '' and '' below with +# your username and password for the EDB repositories: +echo "machine apt.enterprisedb.com login password " > /etc/apt/auth.conf.d/edb.conf + +# Add support for secure APT repositories: +apt-get -y install apt-transport-https + +# Add the EDB signing key. Substitute your EnterpriseDB credentials +# for the '' and '' placeholders. +wget -q -O - https://:@apt.enterprisedb.com/edb-deb.gpg.key | sudo apt-key add - + +# Update the repository metadata: +apt-get update +``` + +## Install the package + +```shell +apt-get install edb-as-server +``` + +Where `` is the version of the EDB Postgres Advanced server you are installing. + +To install an individual component: + +```shell +apt-get install +``` + +Where `package_name` can be any of the available packages from the [available package list](/epas/latest/epas_inst_linux/install_details/rpm_packages/). + +## Initial configuration + +This section steps you through getting started with your cluster including logging in, ensuring the installation was successful, connecting to your cluster, and creating the user password. + +```shell +# To work in your cluster, login as the enterprisedb user +su - enterprisedb + +# Connect to the database server using the psql command line client +psql edb + +# Assign a password to the database superuser the enterprisedb +ALTER ROLE enterprisedb IDENTIFIED BY password; + +# Create a database (named hr) +CREATE DATABASE hr; + +# Connect to the new database and create a table (named dept) +\c hr +CREATE TABLE public.dept (deptno numeric(2) NOT NULL CONSTRAINT dept_pk +PRIMARY KEY, dname varchar(14) CONSTRAINT dept_dname_uq UNIQUE, loc +varchar(13)); + +# Add data to the table +INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK'); +INSERT into dept VALUES (20,'RESEARCH','DALLAS'); + +# You can use simple SQL commands to query the database and retrieve +# information about the data you have added to the table +SELECT * FROM dept; +__OUTPUT__ +deptno | dname | loc +--------+------------+---------- +10 | ACCOUNTING | NEW YORK +20 | RESEARCH | DALLAS +(2 rows) +``` diff --git a/product_docs/docs/epas/15/installing/linux_x86_64/index.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/index.mdx index 2b19db595fb..026f6f825d6 100644 --- a/product_docs/docs/epas/15/installing/linux_x86_64/index.mdx +++ b/product_docs/docs/epas/15/installing/linux_x86_64/index.mdx @@ -29,6 +29,7 @@ For x86_64 (amd64) OS-specific install instructions, including accessing the rep - [CentOS 7](epas_centos_7) - [SLES 15](epas_sles_15) - [SLES 12](epas_sles_12) +- [Ubuntu 22.0](epas_ubuntu_22) - [Ubuntu 20.04](epas_ubuntu_20) - [Ubuntu 18.04](epas_ubuntu_18) - [Debian 11](epas_debian_11) diff --git a/product_docs/docs/epas/15/troubleshooting/linux_troubleshooting/enabling_core_dump.mdx b/product_docs/docs/epas/15/troubleshooting/linux_troubleshooting/enabling_core_dump.mdx index c857013cb70..770bdfa7326 100644 --- a/product_docs/docs/epas/15/troubleshooting/linux_troubleshooting/enabling_core_dump.mdx +++ b/product_docs/docs/epas/15/troubleshooting/linux_troubleshooting/enabling_core_dump.mdx @@ -70,7 +70,7 @@ On RHEL/CentOS 7.x or RHEL/Rocky Linux/AlmaLinux 8.x, core file creation is disa unlimited ``` -- To set a core limit for the services, add the following setting in `/usr/lib/systemd/system/edb-as-14.service`. +- To set a core limit for the services, add the following setting in `/usr/lib/systemd/system/edb-as-15.service`. ```text [Service] @@ -98,21 +98,21 @@ On RHEL/CentOS 7.x or RHEL/Rocky Linux/AlmaLinux 8.x, core file creation is disa - Stop and then start EDB Postgres Advanced Server: ```text - systemctl stop edb-as-14 - systemctl start edb-as-14 + systemctl stop edb-as-15 + systemctl start edb-as-15 ``` - Now, the core dumps are enabled, install the `gdb` tool and debug packages using the following command: ```text yum install gdb - debuginfo-install edb-as14 edb-as14-server-contrib edb-as14-server edb-as14-libs + debuginfo-install edb-as15 edb-as15-server-contrib edb-as15-server edb-as15-libs ``` - Replace the path to a core dump file before proceeding to get a backtrace using the `bt` command to analyze output: ```text - gdb /usr/edb/as14/bin /var/coredumps/core-edb-postgres-65499 + gdb /usr/edb/as15/bin /var/coredumps/core-edb-postgres-65499 (gdb) bt full ``` @@ -207,21 +207,21 @@ On Debian 10 or Ubuntu 18, 20, core file creation is disabled by default. To ena - Stop and then start EDB Postgres Advanced Server: ```text - systemctl stop edb-as@14.service - systemctl start edb-as@14.service + systemctl stop edb-as@15.service + systemctl start edb-as@15.service ``` - Now, the core dumps are enabled, install the `gdb` tool and debug symbols using the following command: ```text apt-get install gdb - apt-get install edb-as14 edb-as-contrib edb-as14-server edb-debugger-dbgsym + apt-get install edb-as15 edb-as-contrib edb-as15-server edb-debugger-dbgsym ``` - Replace the path to a core dump file before proceeding to get a backtrace using the `bt` command to analyze output: ```text - gdb /usr/lib/edb-as/14/bin /var/coredumps/core-edb-postgres-21638 + gdb /usr/lib/edb-as/15/bin /var/coredumps/core-edb-postgres-21638 (gdb) bt full ``` diff --git a/product_docs/docs/epas/15/uninstalling/linux_uninstall.mdx b/product_docs/docs/epas/15/uninstalling/linux_uninstall.mdx index 38b4b16f449..c7dd5a08b26 100644 --- a/product_docs/docs/epas/15/uninstalling/linux_uninstall.mdx +++ b/product_docs/docs/epas/15/uninstalling/linux_uninstall.mdx @@ -48,13 +48,13 @@ To uninstall EDB Postgres Advanced Server and its dependent packages; use the fo - On RHEL or CentOS 7: ```text - yum remove edb-as14-server* + yum remove edb-as15-server* ``` - On RHEL or Rocky Linux or AlmaLinux 8: ```text - dnf remove edb-as14-server* + dnf remove edb-as15-server* ``` ## Uninstalling on Debian or Ubuntu @@ -62,11 +62,11 @@ To uninstall EDB Postgres Advanced Server and its dependent packages; use the fo - To uninstall EDB Postgres Advanced Server, invoke the following command. The configuration files and data directory remains intact. ```text - apt-get remove edb-as14-server* + apt-get remove edb-as15-server* ``` - To uninstall EDB Postgres Advanced Server, configuration files, and data directory, invoke the following command: ```text - apt-get purge edb-as14-server* + apt-get purge edb-as15-server* ``` diff --git a/product_docs/docs/epas/15/uninstalling/windows_uninstall.mdx b/product_docs/docs/epas/15/uninstalling/windows_uninstall.mdx index 7ce10b076db..f1db0a88271 100644 --- a/product_docs/docs/epas/15/uninstalling/windows_uninstall.mdx +++ b/product_docs/docs/epas/15/uninstalling/windows_uninstall.mdx @@ -10,10 +10,10 @@ Note that after uninstalling EDB Postgres Advanced Server, the cluster data file ## Using EDB Postgres Advanced Server uninstallers at the command line -The EDB Postgres Advanced Server interactive installer creates an uninstaller that you can use to remove EDB Postgres Advanced Server or components that reside on a Windows host. The uninstaller is created in `C:\Program Files\edb\as14`. To open the uninstaller, assume superuser privileges, navigate into the directory that contains the uninstaller, and enter: +The EDB Postgres Advanced Server interactive installer creates an uninstaller that you can use to remove EDB Postgres Advanced Server or components that reside on a Windows host. The uninstaller is created in `C:\Program Files\edb\as15`. To open the uninstaller, assume superuser privileges, navigate into the directory that contains the uninstaller, and enter: ```text -uninstall-edb-as14-server.exe +uninstall-edb-as15-server.exe ``` The uninstaller opens. From 74289abee3449d26ac90fbe9d00114dccaae2cde Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Thu, 28 Jul 2022 15:51:25 +0530 Subject: [PATCH 17/77] Added content as per DB-1788 and DB-1743 --- .../07_data_type_formatting_functions.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx index dfff955c2ff..b0597771464 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx @@ -24,10 +24,10 @@ The EDB Postgres Advanced Server formatting functions provide a powerful set of | `TO_NCHAR(string)` | `NVARCHAR2` | Convert a `character string`, `CHAR`, `VARCHAR2`, `CLOB`, or `NCLOB` value to the national character set. | `TO_NCHAR('test')` | `test` | | `TO_NCHAR(number [, format])` | `NVARCHAR2` | Convert a number formatted string to a national character data type. | `TO_NCHAR(7654321, 'C9G999G999D99')` | `7,654,321.00` | | `TO_NCHAR(DATE [, format ])` | `NVARCHAR2` | Convert a date/time to a formatted string of national character data type. | `TO_NCHAR(timestamp '2022-04-20 17:31:12.66', 'Day: MONTH DD, YYYY')` | `Wednesday: APRIL 20, 2022` | -| `TO_NUMBER(string [, format ])` | `NUMBER` | Convert a number formatted string to a `NUMBER` data type | `TO_NUMBER('2,412-', '999,999S')` | `-2412` | -| `TO_TIMESTAMP(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a `TIMESTAMPTZ` data type | `TO_TIMESTAMP('05 Dec 2000 08:30:25 pm', 'DD Mon YYYY hh12:mi:ss pm')` | `05-DEC-00 20:30:25 +05:30` | -| `TO_TIMESTAMP_TZ(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a `TIMESTAMPTZ` data type | `TO_TIMESTAMP_TZ ('2003/12/13 10:13:18 -8:00', 'YYYY/MM/DD HH:MI:SS TZH:TZM')` | `13-DEC-03 23:43:18 +05:30` | - +| `TO_NUMBER(string [, format ])` | `NUMBER` | Convert a number formatted string to a `NUMBER` data type. | `TO_NUMBER('2,412-', '999,999S')` | `-2412` | +| `TO_TIMESTAMP(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a TIMESTAMP WITH TIME ZONE data type. | `TO_TIMESTAMP('05 Dec 2000 08:30:25 pm', 'DD Mon YYYY hh12:mi:ss pm')` | `05-DEC-00 20:30:25 +05:30` | +| `TO_TIMESTAMP_TZ(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a TIMESTAMP WITH TIME ZONE data type. | `TO_TIMESTAMP_TZ ('2003/12/13 10:13:18 -8:00', 'YYYY/MM/DD HH:MI:SS TZH:TZM')` | `13-DEC-03 23:43:18 +05:30` | +| `FROM_TZ(timestamp_value, timezone_value)` | `TIMESTAMPTZ` | Convert a timestamp value and a timezone to a TIMESTAMP WITH TIME ZONE value. | `FROM_TZ(TIMESTAMP '2017-08-08 08:09:10', 'Asia/Kolkata')` | `08-AUG-17 08:09:10 +05:30` | !!! Note The output format of `TO_DSINTERVAL(string)` can be altered using `intervalstyle` GUC setting. For example: From 3715faf754e32b844bfc57f771c9e0eb2ed71e1a Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Wed, 3 Aug 2022 14:05:56 +0530 Subject: [PATCH 18/77] Added content as per DB-1911 --- .../03_built-in_packages/18_dbms_utility.mdx | 27 ++++++++++++++++++- .../07_data_type_formatting_functions.mdx | 1 + .../01_create_table_partition_by/index.mdx | 6 +---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx index 3b97b779ba5..2b8b66f61bf 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx @@ -18,7 +18,9 @@ The `DBMS_UTILITY` package provides support for the following utility programs. | `COMMA_TO_TABLE(list, tablen OUT, tab OUT)` | Procedure | n/a | Convert a comma-delimited list of names to a table of names. | | `DB_VERSION(version OUT, compatibility OUT)` | Procedure | n/a | Get the database version. | | `EXEC_DDL_STATEMENT (parse_string)` | Procedure | n/a | Execute a DDL statement. | -| `FORMAT_CALL_STACK` | Function | `TEXT` | Format the current call stack. | +| `FORMAT_CALL_STACK` | Function | `TEXT` | Formats the current call stack. | +| `FORMAT_ERROR_BACKTRACE` | Function | `TEXT` | Formats the current error backtrace. | +| `FORMAT_ERROR_STACK` | Function | `TEXT` | Get the exception name. | | `GET_CPU_TIME` | Function | `NUMBER` | Get the current CPU time. | | `GET_DEPENDENCY(type, schema, name)` | Procedure | n/a | Get objects that depend on the given object. | | `GET_HASH_VALUE(name, base, hash_size)` | Function | `NUMBER` | Compute a hash value. | @@ -384,6 +386,29 @@ return VARCHAR2 You can use this function in a stored procedure, function, or package to return the current call stack in a readable format. This function is useful for debugging. +## FORMAT_ERROR_BACKTRACE + +The `FORMAT_ERROR_BACKTRACE` function returns the current error call stack, i.e. function name and lines that lead up to the exception. + +```sql +DBMS_UTILITY.FORMAT_ERROR_BACKTRACE +return VARCHAR2 +``` + +This function can be used in a stored procedure, function or package to return the current call backtrace in a readable format. This function is useful for debugging purposes. + +## FORMAT_ERROR_STACK + +The `FORMAT_ERROR_STACK` function returns the current exception name. + +```sql +DBMS_UTILITY.FORMAT_ERROR_STACK +return VARCHAR2 +``` + +This function can be used in a stored procedure, function or package to return the current exception name. This function is useful for debugging purposes. + + ## GET_CPU_TIME The `GET_CPU_TIME` function returns the CPU time in hundredths of a second from some arbitrary point in time. diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx index b0597771464..8966b2ae019 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx @@ -28,6 +28,7 @@ The EDB Postgres Advanced Server formatting functions provide a powerful set of | `TO_TIMESTAMP(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a TIMESTAMP WITH TIME ZONE data type. | `TO_TIMESTAMP('05 Dec 2000 08:30:25 pm', 'DD Mon YYYY hh12:mi:ss pm')` | `05-DEC-00 20:30:25 +05:30` | | `TO_TIMESTAMP_TZ(string, format)` | `TIMESTAMPTZ` | Convert a timestamp formatted string to a TIMESTAMP WITH TIME ZONE data type. | `TO_TIMESTAMP_TZ ('2003/12/13 10:13:18 -8:00', 'YYYY/MM/DD HH:MI:SS TZH:TZM')` | `13-DEC-03 23:43:18 +05:30` | | `FROM_TZ(timestamp_value, timezone_value)` | `TIMESTAMPTZ` | Convert a timestamp value and a timezone to a TIMESTAMP WITH TIME ZONE value. | `FROM_TZ(TIMESTAMP '2017-08-08 08:09:10', 'Asia/Kolkata')` | `08-AUG-17 08:09:10 +05:30` | + !!! Note The output format of `TO_DSINTERVAL(string)` can be altered using `intervalstyle` GUC setting. For example: diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx index f285341472b..c8a5ce23a8d 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx @@ -172,11 +172,7 @@ The server generates a subpartition name that's a combination of the partition t ### `SUBPARTITION TEMPLATE` -Use the `SUBPARTITION TEMPLATE` with list, range, or hash subpartitioning to create default subpartitions for each table partition for which you don't explicitly define subpartitions. For more information about setting subpartition template, see [ALTER TABLE...SET SUBPARTITION TEMPLATE](../../04_partitioning_commands_compatible_with_oracle_databases/11_alter_table_set_subpartition_template/#alter_table_set_subpartition_template). - -### `ENABLE ROW MOVEMENT` - -Use `ENABLE ROW MOVEMENT` with a list, range, or hash-partition tables to support migrating tables with similar syntax from Oracle databases. However it doesn't enable the actual row movement. Also, this syntax isn't supported with `ALTER TABLE` command. +Use the `ENABLE ROW MOVEMENT` with a list, range, or hash partition tables to support the migration of tables with similar syntax from oracle databases, however it do not enable the actual row movement. Also, this syntax is not supported with `ALTER TABLE` command. ## Parameters From 2d67ebe9fa7d5f0c906b3cae0cb2665b2f7ea5cb Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Thu, 4 Aug 2022 10:48:06 +0530 Subject: [PATCH 19/77] Added the content to v15 as per DB-1910 --- product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx | 4 +++- .../03_execute_immediate_bulk_collect.mdx | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx b/product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx index 84ed43a3566..41218b76956 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx @@ -19,7 +19,7 @@ The `EXECUTE IMMEDIATE` command is used to run SQL commands dynamically: ```sql EXECUTE IMMEDIATE ';' [ INTO { [, ...] | } ] - [ USING [, ...] ] + [ USING {[] } [, ...]} ]; ``` Where: @@ -34,6 +34,8 @@ When using the `INTO` clause, exactly one row must be returned in the result set Placeholders aren't declared anywhere in the SPL program. They appear only in `sql_expression`. +Currently all options for `bind_type` are ignored and `bind_argument` is treated as `IN OUT`. + This example shows basic dynamic SQL commands as string literals: ```sql diff --git a/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/03_execute_immediate_bulk_collect.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/03_execute_immediate_bulk_collect.mdx index 3d9ddea6a74..e433d2c55d9 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/03_execute_immediate_bulk_collect.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/04_using_the_bulk_collect_clause/03_execute_immediate_bulk_collect.mdx @@ -26,5 +26,6 @@ Where: - Is passed to the `sql_expression` (specified with a `bind_type` of `IN`) - Receives a value from the `sql_expression` (specified with a `bind_type` of `OUT`) - Does both (specified with a `bind_type` of `IN OUT`) +Currently all the `bind_type` is ignored and `bind_argument` is treated as `IN OUT`. If you specify a single collection, then `collection` can be a collection of a single field or a collection of a record type. If you specify more than one collection, each `collection` must consist of a single field. From 4a2e860b0488eef1988ca179ddf6bb9293965806 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 16 Aug 2022 11:19:07 +0530 Subject: [PATCH 20/77] Changes done as per Jeevan's comment --- .../03_built-in_packages/18_dbms_utility.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx index 2b8b66f61bf..15a9554b59f 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx @@ -19,7 +19,7 @@ The `DBMS_UTILITY` package provides support for the following utility programs. | `DB_VERSION(version OUT, compatibility OUT)` | Procedure | n/a | Get the database version. | | `EXEC_DDL_STATEMENT (parse_string)` | Procedure | n/a | Execute a DDL statement. | | `FORMAT_CALL_STACK` | Function | `TEXT` | Formats the current call stack. | -| `FORMAT_ERROR_BACKTRACE` | Function | `TEXT` | Formats the current error backtrace. | +| `FORMAT_ERROR_BACKTRACE` | Function | `TEXT` | Formats the current error call backtrace. | | `FORMAT_ERROR_STACK` | Function | `TEXT` | Get the exception name. | | `GET_CPU_TIME` | Function | `NUMBER` | Get the current CPU time. | | `GET_DEPENDENCY(type, schema, name)` | Procedure | n/a | Get objects that depend on the given object. | @@ -408,6 +408,8 @@ return VARCHAR2 This function can be used in a stored procedure, function or package to return the current exception name. This function is useful for debugging purposes. +!!! Note + The output of the functions `FORMAT_ERROR_STACK` and `FORMAT_ERROR_BACKTRACE` are partially compatible with oracle. However, it eases the migration from oracle to EPAS. ## GET_CPU_TIME From e4280c88986c1b466f6c5f2eb784f769a52c8037 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 16 Aug 2022 13:43:13 +0530 Subject: [PATCH 21/77] minor edit --- .../03_built-in_packages/18_dbms_utility.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx index 15a9554b59f..1d37db79cdf 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx @@ -395,7 +395,7 @@ DBMS_UTILITY.FORMAT_ERROR_BACKTRACE return VARCHAR2 ``` -This function can be used in a stored procedure, function or package to return the current call backtrace in a readable format. This function is useful for debugging purposes. +This function can be used in a stored procedure, function or package to return the current error call backtrace in a readable format. This function is useful for debugging purposes. ## FORMAT_ERROR_STACK From 8bf5398c5b4278109db0ffa0555ee17d774baa47 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Mon, 17 Oct 2022 14:12:36 +0530 Subject: [PATCH 22/77] updated content as per DB-1880 --- .../05_query_tuning_planner_method_configuration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/05_query_tuning_planner_method_configuration.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/05_query_tuning_planner_method_configuration.mdx index 8273300afbe..30bb189dfbe 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/05_query_tuning_planner_method_configuration.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/01_configuration_parameters/03_configuration_parameters_by_functionality/05_query_tuning_planner_method_configuration.mdx @@ -10,7 +10,7 @@ These configuration parameters are used for planner method configuration. **Parameter type:** Boolean -**Default value:** `true` +**Default value:** `false` **Range:** `{true | false}` From 8f867dcb542cf8232bd536794c79f18f5a6cdd8d Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Wed, 9 Nov 2022 16:38:57 +0530 Subject: [PATCH 23/77] Added initial draft of SQLCODE and SQLERRM function as per DB-1909 --- .../05_errors_and_messages.mdx | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx index 587fde4d6cd..2d605d1a94d 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx @@ -22,4 +22,34 @@ This example displays the message on the user’s output display: DBMS_OUTPUT.PUT_LINE('My name is John'); ``` -The special variables `SQLCODE` and `SQLERRM` contain a numeric code and a text message, respectively, that describe the outcome of the last SQL command issued. If any other error occurs in the program, such as division by zero, these variables contain information about the error. +The special variables `SQLCODE` and `SQLERRM` contain a numeric code and a text message, respectively, that describe the outcome of the last SQL command issued. If any other error occurs in the program such as division by zero, these variables contain information pertaining to the error. + + +## SQLCODE and SQLERRM functions + +!!! Tip "New Feature" + SQLCODE and SQLERRM functions are available from version 15 and later. + +In an exception handler, the `SQLCODE` function returns the numeric code of the exception being handled. Outside an exception handler, `SQLCODE` returns `0`. + +The `SQLERRM` function returns the error messaage associated with an `SQLCODE` variable value. If the error code value is passed to the `SQLERRM` function it returns an error message associated with the passed error code value, irrespective of the current error raised. + +A SQL statement cannot invoke `SQLCODE` and `SQLERRM` functions. + +Example: + +```sql +declare +a number; +b number; +begin +dbms_output.put_line('Before Exception sqlerrm is '|| sqlerrm); +--a:= 1/0; + +exception +when others then +dbms_output.put_line('In Exception : Error message '|| sqlerrm); +dbms_output.put_line('In Exception : Error message '|| sqlerrm(1000)); +dbms_output.put_line('In Exception : Error code '|| sqlcode); +end; +``` From a93fc16952463a0475a1047dc3f35cb7ed558bfc Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Thu, 10 Nov 2022 13:05:15 +0530 Subject: [PATCH 24/77] Added examples of SQLCODE and SQLERRM functions --- .../05_errors_and_messages.mdx | 45 ++++++++++++++----- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx index 2d605d1a94d..b80e6969fcc 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/12_working_with_collections/05_errors_and_messages.mdx @@ -36,20 +36,45 @@ The `SQLERRM` function returns the error messaage associated with an `SQLCODE` v A SQL statement cannot invoke `SQLCODE` and `SQLERRM` functions. -Example: +Examples: ```sql declare -a number; -b number; +l_var number; begin -dbms_output.put_line('Before Exception sqlerrm is '|| sqlerrm); ---a:= 1/0; +l_var:=-1476; +dbms_output.put_line(sqlerrm(l_var::int)); +l_var:=0; +dbms_output.put_line(sqlerrm(l_var::int)); +l_var:=12; +dbms_output.put_line(sqlerrm(l_var::int)); +l_var:=01403; +dbms_output.put_line(sqlerrm(l_var::int)); -exception -when others then -dbms_output.put_line('In Exception : Error message '|| sqlerrm); -dbms_output.put_line('In Exception : Error message '|| sqlerrm(1000)); -dbms_output.put_line('In Exception : Error code '|| sqlcode); end; +__OUTPUT__ +division_by_zero +normal, successful completion +message 12 not found +message 1403 not found +``` + + +```sql +DECLARE +Balance integer := 24; +BEGIN +IF (Balance <= 100) THEN +Raise_Application_Error (-20343, 'The balance is too low.'); +END IF; +exception + when others then + dbms_output.put_line('sqlcode ==>'|| sqlcode); + dbms_output.put_line('sqlerrm ==>'|| sqlerrm); + dbms_output.put_line('sqlerrm(sqlcode) ==>'|| sqlerrm(sqlcode)); +END; +__OUTPUT__ +sqlcode ==>-20343 +sqlerrm ==>EDB-20343: The balance is too low. +sqlerrm(sqlcode) ==>EDB-20343: The balance is too low. ``` From 6d9ed9ff7a5fdf40d8fd5fa39c15157057f04197 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Fri, 2 Dec 2022 10:31:29 +0530 Subject: [PATCH 25/77] Updated the different references of OCI database link to edb_dblink_oci --- .../21_create_public_database_link.mdx | 12 ++++++------ .../15/epas_rel_notes/19_epas14.2.1_rel_notes.mdx | 2 +- .../epas/15/epas_rel_notes/epas14_3_0_rel_notes.mdx | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx b/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx index 9962da9bc74..77e88842b6d 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx @@ -90,9 +90,9 @@ A `SCROLL` rescan is quick, but each iteration resets the current row position t To create a non-public database link, you need the `CREATE DATABASE LINK` privilege. To create a public database link, you need the `CREATE PUBLIC DATABASE LINK` privilege. -## Setting up an Oracle instant client for oci-dblink +## Setting up an Oracle instant client for OCI database link -To use oci-dblink, you must download and install an Oracle instant client on the host running the EDB Postgres Advanced Server database in which you want to create the database link. +To use `edb_dblink_oci`, you must download and install an Oracle instant client on the host running the EDB Postgres Advanced Server database in which you want to create the database link. You can download an instant client [here](http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html). @@ -202,9 +202,9 @@ After setting the `PATH` environment variable or the `oracle_home` configuration ## Examples -### Creating an oci-dblink database link +### Creating an OCI database link -This example uses the `CREATE DATABASE LINK` command to create a database link named `chicago` that connects an instance of EDB Postgres Advanced Server to an Oracle server using an oci-dblink connection. The connection information tells EDB Postgres Advanced Server to log in to Oracle as the user `admin` whose password is `mypassword`. Including the `oci` option tells EDB Postgres Advanced Server that this is an oci-dblink connection. The connection string `'//127.0.0.1/acctg'` specifies the server address and name of the database. +This example uses the `CREATE DATABASE LINK` command to create a database link named `chicago` that connects an instance of EDB Postgres Advanced Server to an Oracle server using an `edb_dblink_oci` connection. The connection information tells EDB Postgres Advanced Server to log in to Oracle as the user `admin` whose password is `mypassword`. Including the `oci` option tells EDB Postgres Advanced Server that this is an `edb_dblink_oci` connection. The connection string `'//127.0.0.1/acctg'` specifies the server address and name of the database. ```sql CREATE DATABASE LINK chicago @@ -307,9 +307,9 @@ __OUTPUT__ (14 rows) ``` -## Pushdown for an oci database link +## Pushdown for an OCI database link -When the oci-dblink is used to execute SQL statements on a remote Oracle database, sometimes the *pushdown* of the processing occurs on the foreign server. +When the OCI database link is used to execute SQL statements on a remote Oracle database, sometimes the *pushdown* of the processing occurs on the foreign server. Pushdown refers to the occurrence of processing on the foreign (that is, remote) server instead of the local client where the SQL statement was issued. Pushdown can result in performance improvement since the data is processed on the remote server before being returned to the local client. diff --git a/product_docs/docs/epas/15/epas_rel_notes/19_epas14.2.1_rel_notes.mdx b/product_docs/docs/epas/15/epas_rel_notes/19_epas14.2.1_rel_notes.mdx index d6802fa267d..f78a929019b 100644 --- a/product_docs/docs/epas/15/epas_rel_notes/19_epas14.2.1_rel_notes.mdx +++ b/product_docs/docs/epas/15/epas_rel_notes/19_epas14.2.1_rel_notes.mdx @@ -7,7 +7,7 @@ EDB Postgres Advanced Server 14.2.10 includes the following bug fixes: | Type | Description | ID | Category | | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | --------- | | Upstream merge | Merged with community PostgreSQL 14.2. See the community [Release Notes](https://www.postgresql.org/docs/14/release-14-2.html) for details. | | | -| Bug fix | Fix encoding conversion at the time of writing data to a remote server. [Support Ticket: #76625] | DB-1617 | dblink_oci | +| Bug fix | Fix encoding conversion at the time of writing data to a remote server. [Support Ticket: #76625] | DB-1617 | edb_dblink_oci | | Bug fix | Add pg_dump support for security-relevant columns of edb_policy. | DB-1438 | | | Bug fix | Prevent possible crash after implicit rollback handling Bind and Describe messages. | DB-1451 | | | Bug fix | Fix ENQUEUE, DROP QUEUE, DROP QUEUE TABLE when default_with_rowids is enabled. [Support Ticket: #74632] | DB-1500 | dbms_aq | diff --git a/product_docs/docs/epas/15/epas_rel_notes/epas14_3_0_rel_notes.mdx b/product_docs/docs/epas/15/epas_rel_notes/epas14_3_0_rel_notes.mdx index 861191c4c14..b4d6d21d9ea 100644 --- a/product_docs/docs/epas/15/epas_rel_notes/epas14_3_0_rel_notes.mdx +++ b/product_docs/docs/epas/15/epas_rel_notes/epas14_3_0_rel_notes.mdx @@ -8,9 +8,9 @@ EDB Postgres Advanced Server 14.3.0 includes the following bug fixes: | -------------- | -------------------------------------------------------------------------------------------------------------------------------------| ------- | ---------------- | | Upstream merge | Merged with community PostgreSQL 14.3. See the community [Release Notes](https://www.postgresql.org/docs/release/14.3/) for details. | | | | Bug fix | Add syntax check for TABLE(...) clause. [Support Ticket: #81624] | DB-1752 | | -| Bug fix | Add an appropriate cast for const TIMESTAMP and TIMESTAMPTZ to the query pushed to the remote servers. [Support Ticket: #72928] | DB-1493 | oci_dblink | -| Bug fix | Do not push expressions to remote servers involving INTERVAL data type since representation in EPAS/PostgreSQL is different. | DB-1493 | oci_dblink | -| Bug fix | Fix NLS_TIMESTAMP_TZ_FORMAT setting in the remote connection so that timestamptz data gets the correct representation. | DB-1493 | oci_dblink | +| Bug fix | Add an appropriate cast for const TIMESTAMP and TIMESTAMPTZ to the query pushed to the remote servers. [Support Ticket: #72928] | DB-1493 | edb_dblink_oci | +| Bug fix | Do not push expressions to remote servers involving INTERVAL data type since representation in EPAS/PostgreSQL is different. | DB-1493 | edb_dblink_oci | +| Bug fix | Fix NLS_TIMESTAMP_TZ_FORMAT setting in the remote connection so that timestamptz data gets the correct representation. | DB-1493 | edb_dblink_oci | | Bug fix | Add logic of encoding conversion at the time of writing the data on the remote servers. | DB-181 | dblink_ora | | Bug fix | Fix possible server crash in the partition-wise join when PARALLEL hint is used [Support Ticket: #81246]. | DB-1741 | | | Bug fix | Fix failing EXCHANGE ... PARTITION command for the newly added table when both are in the same transaction [Support Ticket: #80298]. | DB-1721 | edb_partitioning | From c0408365ac8a98fb7928b99e42303ce0ca8ae4ab Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Mon, 12 Dec 2022 12:46:15 +0530 Subject: [PATCH 26/77] Added content as per DB-1725 --- .../21_create_public_database_link.mdx | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx b/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx index 77e88842b6d..ca663955d75 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx @@ -319,6 +319,45 @@ For pushdown to occur, some basic conditions must be met. The tables involved in To determine whether to use pushdown for a SQL statement, display the execution plan by using the `EXPLAIN` command. For information about the `EXPLAIN` command, see the [PostgreSQL core documentation](https://www.postgresql.org/docs/current/static/sql-explain.html). +The version 15 and later provides the `edb_dbLink_oci_pushdown.config` configuration file to restrict the pushdowns. You can define the list of functions and operators in this file that can pushdown to the remote server. You can easily add or modify the list as per the requirements. + +Example of `edb_dbLink_oci_pushdown.config` file: + +```shell +#----------------------------------------------------------------------------- +# This file lists object as aggregates, functions, and operators are allowed +# to push down to the remote server. Each entry should be on its line and +# consists of two columns: first is object type as ROUTINE (for functions, +# aggregates and procedures) or OPERATOR, the second column is optionally +# schema-qualified object names with their arguments. The exact form of the +# second column can be formatted using the following query: +# +# For routines: +# +# SELECT pronamespace::regnamespace || '.' || oid::regprocedure FROM pg_proc +# WHERE proname = '' +# +# And for oparator: +# +# SELECT oprnamespace::regnamespace || '.' || oid::regoperator FROM pg_operator +# WHERE oprname = '' +# +# Note: To identify objects uniqually, the name and/or it's argument must be +# schema-qualified. +#----------------------------------------------------------------------------- +ROUTINE pg_catalog.sum(bigint) +ROUTINE pg_catalog.sum(smallint) +ROUTINE pg_catalog.to_number(text) +ROUTINE pg_catalog.to_number(text,text) +OPERATOR pg_catalog.=(integer,integer) +OPERATOR pg_catalog.=(text,text) +OPERATOR pg_catalog.=(smallint,integer) +OPERATOR pg_catalog.=(bigint,integer) +OPERATOR pg_catalog.=(numeric,numeric) +``` + +In order to determine if pushdown is to be used for a SQL statement, display the execution plan by using the `EXPLAIN` command. + These examples use the following database link: ```sql From 3c771b058c7ac7d6a0d7443030cf83fee58c0e1b Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Wed, 14 Dec 2022 11:43:01 +0530 Subject: [PATCH 27/77] Minor edits for DB-1725 --- .../21_create_public_database_link.mdx | 43 +++++++++---------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx b/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx index ca663955d75..34173175a67 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/21_create_public_database_link.mdx @@ -319,32 +319,31 @@ For pushdown to occur, some basic conditions must be met. The tables involved in To determine whether to use pushdown for a SQL statement, display the execution plan by using the `EXPLAIN` command. For information about the `EXPLAIN` command, see the [PostgreSQL core documentation](https://www.postgresql.org/docs/current/static/sql-explain.html). -The version 15 and later provides the `edb_dbLink_oci_pushdown.config` configuration file to restrict the pushdowns. You can define the list of functions and operators in this file that can pushdown to the remote server. You can easily add or modify the list as per the requirements. +You can restrict the pushdowns using the `edb_dbLink_oci_pushdown.config` configuration file. You can define the list of functions and operators in this file that can pushdown to the remote server. You can easily add or modify the list as per the requirements. + +This file lists the objects as aggregates, functions, and operators allowed to push down to the remote server. Each entry should be on a single line. Each entry must have two columns: +- Object type that can be ROUTINE (functions, aggregates, and procedures) or OPERATOR. +- The second column is schema-qualified object names with their arguments. + +The exact form of the second column can be formatted using the following query: + +For ROUTINES: + +```sql +SELECT pronamespace::regnamespace || '.' || oid::regprocedure FROM pg_proc +WHERE proname = '' +``` + +For OPERATOR: + +```sql +SELECT oprnamespace::regnamespace || '.' || oid::regoperator FROM pg_operator +WHERE oprname = '' +``` Example of `edb_dbLink_oci_pushdown.config` file: ```shell -#----------------------------------------------------------------------------- -# This file lists object as aggregates, functions, and operators are allowed -# to push down to the remote server. Each entry should be on its line and -# consists of two columns: first is object type as ROUTINE (for functions, -# aggregates and procedures) or OPERATOR, the second column is optionally -# schema-qualified object names with their arguments. The exact form of the -# second column can be formatted using the following query: -# -# For routines: -# -# SELECT pronamespace::regnamespace || '.' || oid::regprocedure FROM pg_proc -# WHERE proname = '' -# -# And for oparator: -# -# SELECT oprnamespace::regnamespace || '.' || oid::regoperator FROM pg_operator -# WHERE oprname = '' -# -# Note: To identify objects uniqually, the name and/or it's argument must be -# schema-qualified. -#----------------------------------------------------------------------------- ROUTINE pg_catalog.sum(bigint) ROUTINE pg_catalog.sum(smallint) ROUTINE pg_catalog.to_number(text) From 0f70c51717459fa5198e6aac3af381fc63ccae63 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Thu, 5 Jan 2023 14:30:37 +0530 Subject: [PATCH 28/77] Removed epas_ubuntu22 install topic and references from index files --- .../docs/epas/15/installing/index.mdx | 2 +- .../linux_x86_64/epas_ubuntu_22.mdx | 88 ------------------- .../epas/15/installing/linux_x86_64/index.mdx | 2 - 3 files changed, 1 insertion(+), 91 deletions(-) delete mode 100644 product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_22.mdx diff --git a/product_docs/docs/epas/15/installing/index.mdx b/product_docs/docs/epas/15/installing/index.mdx index 4e768cb8cb0..bbce947f0d6 100644 --- a/product_docs/docs/epas/15/installing/index.mdx +++ b/product_docs/docs/epas/15/installing/index.mdx @@ -26,7 +26,7 @@ Select a link to access the applicable installation instructions: ### SUSE Linux Enterprise (SLES) - [SLES 15](linux_x86_64/epas_sles_15), [SLES 12](linux_x86_64/epas_sles_12) ### Debian and derivatives -- [Ubuntu 22.04](linux_x86_64/epas_ubuntu_22), [Ubuntu 20.04](linux_x86_64/epas_ubuntu_20), [Ubuntu 18.04](linux_x86_64/epas_ubuntu_18) +- [Ubuntu 20.04](linux_x86_64/epas_ubuntu_20), [Ubuntu 18.04](linux_x86_64/epas_ubuntu_18) - [Debian 11](linux_x86_64/epas_debian_11), [Debian 10](linux_x86_64/epas_debian_10) ## [Linux on IBM Power (ppc64le)](linux_ppc64le) ### Red Hat Enterprise Linux (RHEL) diff --git a/product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_22.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_22.mdx deleted file mode 100644 index 4284804db80..00000000000 --- a/product_docs/docs/epas/15/installing/linux_x86_64/epas_ubuntu_22.mdx +++ /dev/null @@ -1,88 +0,0 @@ ---- -navTitle: Ubuntu 22.04 -title: Installing EDB Postgres Advanced Server on Ubuntu 22.04 x86_64 ---- - -Before you begin the installation process, log in as superuser. - -```shell -# To log in as a superuser: -sudo su - -``` - -## Set up the repository - -Setting up the repository is a one-time task. If you have already set up your repository, you do not need to perform this step. If you do need to set up the repository, you must register with EDB. To receive credentials for the EDB repository, visit: [Repository Access Request](https://www.enterprisedb.com/repository-access-request). - -```shell -# Set up the EDB repository -echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list - -# Replace '' and '' below with -# your username and password for the EDB repositories: -echo "machine apt.enterprisedb.com login password " > /etc/apt/auth.conf.d/edb.conf - -# Add support for secure APT repositories: -apt-get -y install apt-transport-https - -# Add the EDB signing key. Substitute your EnterpriseDB credentials -# for the '' and '' placeholders. -wget -q -O - https://:@apt.enterprisedb.com/edb-deb.gpg.key | sudo apt-key add - - -# Update the repository metadata: -apt-get update -``` - -## Install the package - -```shell -apt-get install edb-as-server -``` - -Where `` is the version of the EDB Postgres Advanced server you are installing. - -To install an individual component: - -```shell -apt-get install -``` - -Where `package_name` can be any of the available packages from the [available package list](/epas/latest/epas_inst_linux/install_details/rpm_packages/). - -## Initial configuration - -This section steps you through getting started with your cluster including logging in, ensuring the installation was successful, connecting to your cluster, and creating the user password. - -```shell -# To work in your cluster, login as the enterprisedb user -su - enterprisedb - -# Connect to the database server using the psql command line client -psql edb - -# Assign a password to the database superuser the enterprisedb -ALTER ROLE enterprisedb IDENTIFIED BY password; - -# Create a database (named hr) -CREATE DATABASE hr; - -# Connect to the new database and create a table (named dept) -\c hr -CREATE TABLE public.dept (deptno numeric(2) NOT NULL CONSTRAINT dept_pk -PRIMARY KEY, dname varchar(14) CONSTRAINT dept_dname_uq UNIQUE, loc -varchar(13)); - -# Add data to the table -INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK'); -INSERT into dept VALUES (20,'RESEARCH','DALLAS'); - -# You can use simple SQL commands to query the database and retrieve -# information about the data you have added to the table -SELECT * FROM dept; -__OUTPUT__ -deptno | dname | loc ---------+------------+---------- -10 | ACCOUNTING | NEW YORK -20 | RESEARCH | DALLAS -(2 rows) -``` diff --git a/product_docs/docs/epas/15/installing/linux_x86_64/index.mdx b/product_docs/docs/epas/15/installing/linux_x86_64/index.mdx index 026f6f825d6..7cefa6b3d11 100644 --- a/product_docs/docs/epas/15/installing/linux_x86_64/index.mdx +++ b/product_docs/docs/epas/15/installing/linux_x86_64/index.mdx @@ -12,7 +12,6 @@ navigation: - epas_centos_7 - epas_sles_15 - epas_sles_12 -- epas_ubuntu_22 - epas_ubuntu_20 - epas_ubuntu_18 - epas_debian_11 @@ -29,7 +28,6 @@ For x86_64 (amd64) OS-specific install instructions, including accessing the rep - [CentOS 7](epas_centos_7) - [SLES 15](epas_sles_15) - [SLES 12](epas_sles_12) -- [Ubuntu 22.0](epas_ubuntu_22) - [Ubuntu 20.04](epas_ubuntu_20) - [Ubuntu 18.04](epas_ubuntu_18) - [Debian 11](epas_debian_11) From d28b8bdd505e6972f83ded1726baf14f74e4fca8 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Wed, 11 Jan 2023 14:38:56 +0530 Subject: [PATCH 29/77] Added content as per DB-1912 --- .../epas_compat_tools_guide/02_edb_loader.mdx | 62 +++++++++++++++---- 1 file changed, 49 insertions(+), 13 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_tools_guide/02_edb_loader.mdx b/product_docs/docs/epas/15/epas_compat_tools_guide/02_edb_loader.mdx index 38babe80a09..08b4e8acceb 100644 --- a/product_docs/docs/epas/15/epas_compat_tools_guide/02_edb_loader.mdx +++ b/product_docs/docs/epas/15/epas_compat_tools_guide/02_edb_loader.mdx @@ -515,11 +515,11 @@ If you want to provide an SQL expression, then a workaround is to specify the da !!! Note Omitting the `FROM table_list` clause isn't compatible with Oracle databases. If you don't need to specify any tables, using the `FROM DUAL` clause is compatible with Oracle databases. -### EDB\*Loader control file examples +## EDB\* Loader control file examples The following are some examples of control files and their corresponding data files. -#### Delimiter-separated field data file +### Delimiter-separated field data file This control file uses a delimiter-separated data file that appends rows to the `emp` table. The `APPEND` clause is used to allow inserting additional rows into the `emp` table. @@ -571,7 +571,7 @@ __OUTPUT__ (4 rows) ``` -#### Fixed-width field data file +### Fixed-width field data file This control file loads the same rows into the `emp` table. It uses a data file containing fixed-width fields. The `FIELDS TERMINATED BY` and `OPTIONALLY ENCLOSED BY` clauses are absent. Instead, each field includes the `POSITION` clause. @@ -603,7 +603,7 @@ The following is the corresponding data file containing fixed-width fields: 9104JONES, JR.MANAGER 783902-APR-09 7975.0020 ``` -#### Single physical record data file – RECORDS DELIMITED BY clause +### Single physical record data file – RECORDS DELIMITED BY clause This control file loads the same rows into the `emp` table but uses a data file with one physical record. Terminate each record loaded as a row in the table using a semicolon (`;`). The `RECORDS DELIMITED BY` clause specifies this value. @@ -636,7 +636,7 @@ The following is the corresponding data file. The content is a single physical r JR.",MANAGER,7839,02-APR-09,7975.00,20,; ``` -#### FILLER clause +### FILLER clause This control file uses the `FILLER` clause in the data fields for the `sal` and `comm` columns. EDB\*Loader ignores the values in these fields and sets the corresponding columns to null. @@ -673,7 +673,7 @@ __OUTPUT__ (4 rows) ``` -#### BOUNDFILLER clause +### BOUNDFILLER clause This control file uses the `BOUNDFILLER` clause in the data fields for the `job` and `mgr` columns. EDB\*Loader ignores the values in these fields and sets the corresponding columns to null in the same manner as the `FILLER` clause. However, unlike columns with the `FILLER` clause, you can use columns with the `BOUNDFILLER` clause in an expression, as shown for column `jobdesc`. @@ -733,7 +733,7 @@ __OUTPUT__ (4 rows) ``` -#### Field types with length specification +### Field types with length specification This control file contains the field type clauses with the length specification: @@ -782,7 +782,7 @@ __OUTPUT__ (4 rows) ``` -#### NULLIF clause +### NULLIF clause This example uses the `NULLIF` clause on the `sal` column to set it to null for employees of job `MANAGER`. It also uses the clause on the `comm` column to set it to null if the employee isn't a `SALESMAN` and isn't in department `30`. In other words, a `comm` value is accepted if the employee is a `SALESMAN` or is a member of department `30`. @@ -844,7 +844,7 @@ The `comm` values from the data file for employees `PETERSON`, `WARREN`, `ARNOLD The `comm` value of `2000.00` in the data file for employee `JACKSON` is ignored, and the `comm` column of the `emp` table is set to null. This employee isn't a `SALESMAN` or a member of department `30`. -#### SELECT statement in a field expression +### SELECT statement in a field expression This example uses a `SELECT` statement in the expression of the field definition to return the value to load into the column: @@ -907,7 +907,7 @@ __OUTPUT__ !!! Note The `job` column contains the value from the `dname` column of the `dept` table returned by the `SELECT` statement instead of the job name from the data file. -#### Multiple INTO TABLE clauses +### Multiple INTO TABLE clauses This example uses multiple `INTO TABLE` clauses. For this example, two empty tables are created with the same data definition as the `emp` table. The following `CREATE TABLE` commands create these two empty tables, without inserting rows from the original `emp` table: @@ -1000,7 +1000,7 @@ empno | ename | job | mgr | hiredate | sal | comm | d ## Invoking EDB\*Loader -You must have superuser privileges to run EDB\*Loader. Use the following command to invoke EDB\*Loader from the command line: +You can run EDB\*Loader as superuser or as a normal user. Use the following command to invoke EDB\*Loader from the command line: ```sql edbldr [ -d ] [ -p ] [ -h ] @@ -1058,7 +1058,7 @@ The operating system account `enterprisedb` must have write permission on the di `USERID={ username/password | username/ | username | / }` - EDB\*Loader connects to the database with `username`. `username` must be a superuser. `password` is the password for `username`. + EDB\*Loader connects to the database with `username`. `username` must be a superuser or a username with required privilges. `password` is the password for `username`. If you omit the `USERID` parameter, EDB\*Loader prompts for `username` and `password`. If you specify `USERID=username/`, then EDB\*Loader either: - Uses the password file specified by environment variable `PGPASSFILE` if `PGPASSFILE` is set @@ -1231,6 +1231,42 @@ EDB*Loader: Copyright (c) 2007-2021, EnterpriseDB Corporation. Successfully loaded (4) records ``` +In the following example EDB\*Loader is invoked using a normal user. For this example, one empty table `bar` is created and a normal user `bob` is created. The `bob` user is granted all privileges on the table `bar`. The following CREATE TABLE command creates the empty table, the CREATE USER command creates the user and the GRANT command gives required privileges to `bob` user on the `bar` table: + +```sql +CREATE TABLE bar(i int); +CREATE USER bob identified by '123'; +GRANT ALL on bar TO bob; +``` + +The control file and data file: + +```shell +## Control file +EDBAS/ - (master) $ cat /tmp/edbldr.ctl +LOAD DATA INFILE '/tmp/edbldr.dat' +truncate into table bar +( +i position(1:1) +) + +## Data file +EDBAS/ - (master) $ cat /tmp/edbldr.dat +1 +2 +3 +5 +``` + +Invoke the EDB*Loader: + +```shell +EDBAS/ - (master) $ /usr/edb/as15/bin/edbldr -d edb userid=bob/123 control=/tmp/edbldr.ctl +EDB*Loader: Copyright (c) 2007-2022, EnterpriseDB Corporation. + +Successfully loaded (4) records +``` + ### Exit codes @@ -1521,7 +1557,7 @@ The data that's being updated or inserted is saved in the `emp_update.dat` file. 7654,MARTIN,SALESMAN,7698,28-SEP-81 00:00:00,1500.00,400.00,30 ``` -Invoke EDB\*Loader, specifying the name of the database (`edb`), the name of a database superuser and their associated password, and the name of the control file (`emp_update.ctl`): +Invoke EDB\*Loader, specifying the name of the database (`edb`), the name of a database user (and their associated password) and the name of the control file (`emp_update.ctl`): ```shell edbldr -d edb userid=user_name/password control=emp_update.ctl From fd162fbdcfa2b093e56abdfd82b667bca4c0147d Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 17 Jan 2023 13:41:24 +0530 Subject: [PATCH 30/77] Added to_single_byte and to_multi_byte functions as per DB-1963 --- .../to_multi_byte.mdx | 63 ++++++++++++++++ .../to_single_byte.mdx | 72 +++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/to_multi_byte.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/to_single_byte.mdx diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/to_multi_byte.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/to_multi_byte.mdx new file mode 100644 index 00000000000..7c15bcf2ad1 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/to_multi_byte.mdx @@ -0,0 +1,63 @@ +--- +title: "TO_MULTI_BYTE function" +--- + +`TO_MULTI_BYTE` returns char with all its single-byte characters converted to their corresponding multi-byte characters. Char can be of data type `CHAR`, `VARCHAR2`, `NCHAR`, or `NVARCHAR2`. The value returned is in the same data type as char. + +Any single-byte characters in char with no multi-byte equivalents appear in the output string as single-byte characters. This function applies if your database character set contains single-byte and multi-byte characters. + +## Examples + +```sql +SELECT to_multi_byte('ABC&123') FROM dual; +__OUTPUT__ + to_multi_byte +---------------- +ABC&123 +(1 row) +``` + +```sql +SELECT octet_length('A') FROM dual; +__OUTPUT__ + octet_length +-------------- + 1 +(1 row) +``` + +```sql +SELECT octet_length(to_multi_byte('A')) FROM dual; +__OUTPUT__ + octet_length +-------------- + 3 +(1 row) +``` + +```sql +SELECT bit_length(to_multi_byte('A')) FROM dual; +__OUTPUT__ + bit_length +------------ + 24 +(1 row) +``` + +```sql +SELECT ascii(to_multi_byte('A')) FROM dual; +__OUTPUT__ + ascii +------- + 65313 +(1 row) +``` + +```sql +SELECT to_hex(ascii(to_multi_byte('A'))) FROM dual; +__OUTPUT__ + to_hex +-------- + ff21 +(1 row) +``` \ No newline at end of file diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/to_single_byte.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/to_single_byte.mdx new file mode 100644 index 00000000000..c14395f0361 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/to_single_byte.mdx @@ -0,0 +1,72 @@ +--- +title: "TO_SINGLE_BYTE function" +--- + +`TO_SINGLE_BYTE` returns char with all its multi-byte characters converted to their corresponding single-byte characters. Char can be of data type `CHAR`, `VARCHAR2`, `NCHAR`, or `NVARCHAR2`. The value returned is in the same data type as char. + +Any multi-byte characters in char that have no single-byte equivalents appear in the output as multi-byte characters. This function applies if your database character set contains single-byte and multi-byte characters. + +## Examples + +```sql +SELECT to_single_byte('ABC&123') FROM dual; +__OUTPUT__ + to_single_byte +---------------- + ABC&123 +(1 row) +``` + +```sql +SELECT octet_length('A') FROM dual; +__OUTPUT__ + octet_length +-------------- + 3 +(1 row) +``` + +```sql +SELECT octet_length(to_single_byte('A')) FROM dual; +__OUTPUT__ + octet_length +-------------- + 1 +(1 row) +``` + +```sql +SELECT bit_length(to_single_byte('A')) FROM dual; +__OUTPUT__ + bit_length +------------ + 8 +(1 row) +``` + +```sql +SELECT ascii(to_single_byte('A')) FROM dual; +__OUTPUT__ + ascii +------- + 65 +(1 row) +``` + +```sql +SELECT to_hex(ascii(to_single_byte('A'))) FROM dual; +__OUTPUT__ + to_hex +-------- + 41 +(1 row) +``` + +```sql +SELECT TO_SINGLE_BYTE( CHR(65313)) FROM dual; +__OUTPUT__ + to_single_byte +---------------- + A +(1 row) +``` \ No newline at end of file From 4b2c2a5abb3d8a1d8653450c8e6e40a64fcedbbd Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 31 Jan 2023 13:46:01 +0530 Subject: [PATCH 31/77] Update 01a_display_packages.mdx --- .../02_packages/01a_display_packages.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx index 4ebc4bee214..ef4c326247f 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx @@ -1,8 +1,8 @@ --- -title: "View Package and Package Body Definition" +title: "View package and package body definition" --- -From version 15 onwards, you can view the package specification and package body definition using the psql meta-commands `\sps` and `\spb` respectively. +You can view the package specification and package body definition using the psql meta-commands `\sps` and `\spb` respectively. **Synopsis** From 8fe6ca1e00d3330936473578a2bebc0b66973e38 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 31 Jan 2023 13:48:19 +0530 Subject: [PATCH 32/77] Update 01a_display_packages.mdx --- .../02_packages/01a_display_packages.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx index ef4c326247f..618413cf34a 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/02_packages/01a_display_packages.mdx @@ -2,16 +2,16 @@ title: "View package and package body definition" --- -You can view the package specification and package body definition using the psql meta-commands `\sps` and `\spb` respectively. +You can view the package specification and package body definition using the psql meta-commands `\sps` and `\spb`, respectively. -**Synopsis** +## Synopsis ```sql \sps[+] []. \spb[+] []. ``` -**Examples** +### Examples Create a package and a package body `test_pkg` in the `public` schema: @@ -98,7 +98,7 @@ edb=# You can also view the definition of individual functions and procedures using `\sf` command. -**Examples** +### Examples Create the following function and procedure: From a069b41b4deeeee0ff8a9f503db8d667b63380c1 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 31 Jan 2023 13:51:26 +0530 Subject: [PATCH 33/77] Update product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx Co-authored-by: Dee Dee Rothery <83650384+drothery-edb@users.noreply.github.com> --- .../07_data_type_formatting_functions.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx index 8966b2ae019..96c68723dc5 100644 --- a/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx +++ b/product_docs/docs/epas/15/epas_compat_reference/02_the_sql_language/03_functions_and_operators/07_data_type_formatting_functions.mdx @@ -30,7 +30,7 @@ The EDB Postgres Advanced Server formatting functions provide a powerful set of | `FROM_TZ(timestamp_value, timezone_value)` | `TIMESTAMPTZ` | Convert a timestamp value and a timezone to a TIMESTAMP WITH TIME ZONE value. | `FROM_TZ(TIMESTAMP '2017-08-08 08:09:10', 'Asia/Kolkata')` | `08-AUG-17 08:09:10 +05:30` | !!! Note - The output format of `TO_DSINTERVAL(string)` can be altered using `intervalstyle` GUC setting. For example: +You can alter the output format of `TO_DSINTERVAL(string)` using the `intervalstyle` GUC setting. For example: ```sql edb=# SET intervalstyle = 'sql_standard'; From 8a72f9fe090c74e8bd683f9795f66995ac997227 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 31 Jan 2023 14:08:59 +0530 Subject: [PATCH 34/77] Update 76_update.mdx --- product_docs/docs/epas/15/epas_compat_sql/76_update.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx b/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx index f00107b4e9e..eb762febab4 100644 --- a/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx +++ b/product_docs/docs/epas/15/epas_compat_sql/76_update.mdx @@ -35,7 +35,7 @@ URL: https://www.postgresql.org/docs/15/sql-update.html `UPDATE` changes the values of the specified columns in all rows that satisfy the condition. You need to mention only the columns you want to modify in the `SET` clause. Columns not explicitly modified retain their values. -`SET ROW` clause is available from version 15 onwards. This clause enables us to update a target record using a record type variable or row type objects on the condition that the record or row used should have compatible data types with that table's columns in order. +`SET ROW` enables us to update a target record using a record type variable or row type objects. The record or row used, must have compatible data types with the table's columns in order. You can specify the `RETURNING INTO { record | variable [, ...] }` clause only in an SPL program. In addition, the result set of the `UPDATE` command must not return more than one row. Otherwise an exception is thrown. If the result set is empty, then the contents of the target record or variables are set to null. @@ -126,4 +126,4 @@ BEGIN rec_var = row(1000, 1000); UPDATE db1425_t1 SET ROW=rec_var WHERE a = 1; END; -``` \ No newline at end of file +``` From 5631ffda0e16b6578c79e12436db77be57e613de Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 31 Jan 2023 14:11:38 +0530 Subject: [PATCH 35/77] Update product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx Co-authored-by: Dee Dee Rothery <83650384+drothery-edb@users.noreply.github.com> --- .../05_optimizer_hints/02_access_method_hints.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx index 242c31e035d..28b81a9f4f9 100644 --- a/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx +++ b/product_docs/docs/epas/15/epas_compat_ora_dev_guide/05_optimizer_hints/02_access_method_hints.mdx @@ -19,7 +19,7 @@ The following hints influence how the optimizer accesses relations to create the In addition, you can use the `ALL_ROWS`, `FIRST_ROWS`, and `FIRST_ROWS(n)` hints. -From version 15 onwards, `INDEX` and `NO_INDEX` hints for the partitioned table, internally expand to include the corresponding inherited child indexes and apply in later processing. +`INDEX` and `NO_INDEX` hints for the partitioned table internally expand to include the corresponding inherited child indexes and apply in later processing. ## Examples From 207fb99e08aced9b01cfe41ccec29d1f92d18299 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 31 Jan 2023 14:39:46 +0530 Subject: [PATCH 36/77] Update 18_dbms_utility.mdx --- .../03_built-in_packages/18_dbms_utility.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx index 1d37db79cdf..a430877a2a1 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx @@ -388,7 +388,7 @@ You can use this function in a stored procedure, function, or package to return ## FORMAT_ERROR_BACKTRACE -The `FORMAT_ERROR_BACKTRACE` function returns the current error call stack, i.e. function name and lines that lead up to the exception. +The `FORMAT_ERROR_BACKTRACE` function returns the current error call stack, that is, function name and lines that lead up to the exception. ```sql DBMS_UTILITY.FORMAT_ERROR_BACKTRACE From 6717f7973963c9535d9631b479e7c31b9bf05659 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 31 Jan 2023 17:51:11 +0530 Subject: [PATCH 37/77] Update 18_dbms_utility.mdx --- .../03_built-in_packages/18_dbms_utility.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx index a430877a2a1..0b17b861698 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/18_dbms_utility.mdx @@ -395,7 +395,7 @@ DBMS_UTILITY.FORMAT_ERROR_BACKTRACE return VARCHAR2 ``` -This function can be used in a stored procedure, function or package to return the current error call backtrace in a readable format. This function is useful for debugging purposes. +You can use this function in a stored procedure, function, or package to return the current error call backtrace in a readable format. This function is useful for debugging. ## FORMAT_ERROR_STACK @@ -406,10 +406,10 @@ DBMS_UTILITY.FORMAT_ERROR_STACK return VARCHAR2 ``` -This function can be used in a stored procedure, function or package to return the current exception name. This function is useful for debugging purposes. +You can use this function in a stored procedure, function, or package to return the current exception name. This function is useful for debugging. !!! Note - The output of the functions `FORMAT_ERROR_STACK` and `FORMAT_ERROR_BACKTRACE` are partially compatible with oracle. However, it eases the migration from oracle to EPAS. + The output of the functions `FORMAT_ERROR_STACK` and `FORMAT_ERROR_BACKTRACE` is partially compatible with Oracle. However, it eases the migration from Oracle to EPAS. ## GET_CPU_TIME From 51869a1d7639a1e7f06ebc1004fa9cf2132331a6 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 31 Jan 2023 18:10:03 +0530 Subject: [PATCH 38/77] Update index.mdx --- .../01_create_table_partition_by/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx index c8a5ce23a8d..e959cd8e312 100644 --- a/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_table_partitioning/04_partitioning_commands_compatible_with_oracle_databases/01_create_table_partition_by/index.mdx @@ -172,7 +172,7 @@ The server generates a subpartition name that's a combination of the partition t ### `SUBPARTITION TEMPLATE` -Use the `ENABLE ROW MOVEMENT` with a list, range, or hash partition tables to support the migration of tables with similar syntax from oracle databases, however it do not enable the actual row movement. Also, this syntax is not supported with `ALTER TABLE` command. +Use `ENABLE ROW MOVEMENT` with a list, range, or hash partition table to support migrating tables with similar syntax from Oracle databases. However, it doesn't enable the actual row movement. This syntax isn't supported with the `ALTER TABLE` command. ## Parameters From 95df7484ef62736de34ee9dd92f931440dafc183 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 31 Jan 2023 19:48:33 +0530 Subject: [PATCH 39/77] Update 07_dynamic_sql.mdx --- product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx b/product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx index 41218b76956..bac8cb97e9b 100644 --- a/product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx +++ b/product_docs/docs/epas/15/epas_compat_spl/07_dynamic_sql.mdx @@ -28,6 +28,10 @@ Where: `variable` receives the output of the result set, typically from a `SELECT` command, created as a result of executing the SQL command in `sql_expression`. The number, order, and type of variables must match the number and order and be type-compatible with the fields of the result set. +When using the `USING` clause the value of `expression` is passed to a *placeholder*. Placeholders appear embedded within the SQL command in `sql_expression` where variables may be used. Placeholders are denoted by an identifier with a colon (:) prefix - `:name`. The number, order, and resultant data types of the evaluated expressions must match the number, order, and be type-compatible with the placeholders in `sql_expression`. Note that placeholders are not declared anywhere in the SPL program – they only appear in `sql_expression`. + +Currently `bind_type` is ignored and `bind_argument` is treated as `IN OUT`. + Alternatively, a `record` can be specified as long as the record’s fields match the number and order and are type-compatible with the result set. When using the `INTO` clause, exactly one row must be returned in the result set. Otherwise an exception occurs. When using the `USING` clause, the value of `expression` is passed to a *placeholder*. Placeholders appear embedded in the SQL command in `sql_expression` where variables can be used. Placeholders are denoted by an identifier with a colon (:) prefix, such as `:name`. The number, order, and resultant data types of the evaluated expressions must match the number and order and be type-compatible with the placeholders in `sql_expression`. From 4a6f325481b08940cc9e9079de32904c42dd9c09 Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Tue, 7 Feb 2023 14:55:40 +0530 Subject: [PATCH 40/77] Added XML audit log file output and attributes as per DB-1871 and removed the note --- .../04_audit_log_file.mdx | 188 ++++++++---------- 1 file changed, 84 insertions(+), 104 deletions(-) diff --git a/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx index ac9c0806485..b6183fbddab 100644 --- a/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx +++ b/product_docs/docs/epas/15/epas_guide/03_database_administration/05_edb_audit_logging/04_audit_log_file.mdx @@ -43,8 +43,8 @@ The fields that don't have any values for logging appear as consecutive commas ( | `location` | `location` | `text` | Location of the error in the source code. The location field is populated if `log_error_verbosity` is set to verbose. | | `application_name` | `event/application_name` | `text` | Name of the application from which the statement was executed, for example, `psql.bin`. | | `backend_type` | `event/backend_type` | `text` | The `backend_type` corresponds to what `pg_stat_activity.backend_type` shows and is added as a column to the csv log. | -| `leader_pid` | See note at bottom of the page | `integer` | Process ID of leader for active parallel workers. | -| `query_id` | See note at bottom of the page | `long` | Identifier of this backend's most recent query. | +| `leader_pid` | `event/leader_pid` | `integer` | Process ID of leader for active parallel workers. | +| `query_id` | `event/query_id` | `long` | Identifier of this backend's most recent query. | | `command_tag` | `event/command_tag` | `text` | SQL command of the statement. | | `audit_tag` | `event/audit_tag` | `text` | Value specified by the `audit_tag` parameter in the configuration file. | | `type` | `event/type` | `text` | Determines the audit `event_type` to identify messages in the log. | @@ -176,117 +176,97 @@ host=[local]",,,,,,,,,"psql","client backend",,0,"","edbaudit","disconnect" The following is the XML format of the audit log file. (The output was formatted for visual clarity.) ```xml - - AUDIT - connection authorized: user=enterprisedb database=edb + + AUDIT + statement: create user edb superuser; - - AUDIT - statement: CREATE SCHEMA edb; + + AUDIT + statement: SET client_min_messages = warning - - AUDIT - statement: CREATE TABLE dept ( - deptno NUMBER(2) NOT NULL CONSTRAINT dept_pk PRIMARY KEY, - dname VARCHAR2(14) CONSTRAINT dept_dname_uq UNIQUE, - loc VARCHAR2(13)); - + + AUDIT + statement: DROP DATABASE IF EXISTS "regression" - - AUDIT - statement: INSERT INTO dept VALUES - (10,'ACCOUNTING','NEW YORK' - ); - + + AUDIT + statement: CREATE DATABASE "regression" TEMPLATE=template0 - - AUDIT - statement: UPDATE department SET loc = 'BOSTON' - WHERE deptno = 10; - + + AUDIT + statement: ALTER DATABASE "regression" SET lc_messages TO 'C';ALTER DATABASE "regression" SET lc_monetary TO 'C';ALTER DATABASE "regression" SET lc_numeric TO 'C';ALTER DATABASE "regression" SET lc_time TO 'C';ALTER DATABASE "regression" SET bytea_output TO 'hex';ALTER DATABASE "regression" SET timezone_abbreviations TO 'Default'; - - ERROR - relation "department" does not exist - UPDATE department SET loc = 'BOSTON' WHERE deptno = - 10; - 8 + + AUDIT + statement: SET synchronous_commit = on; - - AUDIT - statement: UPDATE dept SET loc = 'BOSTON' WHERE - deptno = 10; - - - + session_start_time="2023-02-07 16:11:17 IST" log_time="2023-02-07 + 16:12:45.471 IST" virtual_transaction_id="4/27" type="select" + command_tag="SELECT" audit_tag="edbaudit" application_name="psql" + backend_type="parallel worker" leader_pid="5940" query_id="0"> AUDIT statement: SELECT * FROM dept; - - AUDIT - disconnection: session time: 0:01:35.243 user=enterprisedb - database=edb host=[local] + + ERROR + date format not recognized + SELECT to_char(d1, E'"HH:MI:SS is" + HH:MI:SS "\\"text between quote marks\\""') + FROM TIMESTAMPTZ_TBL; -``` - -!!! Note - The XML audit log file currently doesn't capture the `leader PID` and `query ID` fields. The fields will be added to the XML file in a future minor release. \ No newline at end of file + + ERROR + date format not recognized + SELECT to_char(d1, 'HH24--text--MI--text--SS') + FROM TIMESTAMPTZ_TBL; + +``` \ No newline at end of file From e6ad7e5179d34fb7c551c2a33e84699c4ec580ba Mon Sep 17 00:00:00 2001 From: Chris Estes <106166814+ccestes@users.noreply.github.com> Date: Thu, 19 Jan 2023 16:19:45 -0500 Subject: [PATCH 41/77] first round of changes --- .../03_built-in_packages/htp.mdx | 735 ++++++++++++++++++ 1 file changed, 735 insertions(+) create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp.mdx diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp.mdx new file mode 100644 index 00000000000..8ba949d2ac9 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp.mdx @@ -0,0 +1,735 @@ +--- +title: HTP +--- + +## htp.address + +This generates the `
` and `
` tags, which specify the address, author and signature of a document. + +### Syntax + +```text +htp.address ( + cvalue in varchar2 + cnowrap in varchar2 DEFAULT NULL + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cvalue | The string that goes between the `
` and `
` tags. | +| cnowrap | If the value for this parameter is not NULL, the NOWRAP attribute is included in the tag. | +| cclear | The value for the CLEAR attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.anchor and htp.anchor2 + +This generates the `
` and `` HTML tags, which specify the source or destination of a hypertext link. + +### Syntax + +```text +htp.anchor ( + curl in varchar2 + ctext in varchar2 + cname in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` +```text +htp.anchor2 ( + curl in varchar2 + ctext in varchar2 + cname in varchar2 DEFAULT NULL + ctarget in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| curl | The value for the HREF attribute. | +| ctext | The string that goes between the `` and `` tags. | +| cname | The value for the NAME attribute. | +| ctarget | The value for the TARGET attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.appletopen and htp.appletclose + +`htp.appletopen` generates the `` HTML tag, which begins the invocation of a Java applet. Close the applet invocation with `htp.appletclose`, which generates the `` HTML tag. + +### Syntax + +```text +htp.appletopen( + ccode in varchar2 + cheight in number + cwidth in number + cattributes in varchar2 DEFAULT NULL); + + +htp.appletclose; +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ccode | The value for the CODE attribute, which specifies the name of the applet class. | +| cheight | The value for the HEIGHT attribute. | +| cwidth | The value for the WIDTH attribute. | + +## htp.area + +This generates the `` HTML tag, which defines a client-side image map. + +### Syntax + +``` +htp.area( + ccoords in varchar2 + cshape in varchar2 DEFAULT NULL + chref in varchar2 DEFAULT NULL + cnohref in varchar2 DEFAULT NULL + ctarget in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ccoords | The value for the COORDS attribute. | +| cshape | The value for the SHAPE attribute. | +| chref | The value for the HREF attribute. | +| cnohref | If the value for this parameter is not NULL, NOHREF attribute is added to the tag. | +| ctarget | The value for the TARGET attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.base + + + +### Syntax + +``` +htp.base(ctarget, cattributes) return varchar2; +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | + +## htp.basefont + +This generates the `` HTML tag, which specifies the base font size for a Web page. + +### Syntax + +``` +htp.basefont(nsize in integer); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| nsize | The value for the SIZE attribute. | + +## htp.bgsound + +This generates the `` HTML tag, which includes audio for a web page. + +### Syntax + +``` +htp.bgsound( + csrc in varchar2 + cloop in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| csrc | The value for the SRC attribute. | +| cloop | The value for the LOOP attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.big + +This generates the `` and `` tags, which increases font size + +### Syntax + +``` +htp.big( +ctext IN VARCHAR2 CHARACTER SET ANY_CS, +cattributes IN VARCHAR2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text that goes between the tags. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.blockquoteOpen and htp.blockquoteClose + +This generates the `
` and `
` tag, which mark a section of quoted text. + +### Syntax + +``` +htp.blockquoteOpen ( + cnowrap in varchar2 DEFAULT NULL + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.blockquoteClose; +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cnowrap | If the value for this parameter is not NULL, the NOWRAP attribute is added to the tag. | +| cclear | The value for the CLEAR attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.bodyOpen and htp.bodyClose + +This generates the `` and `` tags, which mark the body section of an HTML document. + +### Syntax + +``` +htp.bodyOpen( + cbackground in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.bodyClose; +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cbackground | The value for the BACKGROUND attribute, which specifies a graphic file to use for the background of the document. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.bold + +This generates the `` and `` tags, which direct the browser to display the text in boldface. + +### Syntax + +``` +htp.bold ( + ctext in varchar2 + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text that goes between the tags. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.nl and htp.br + +This generates the `
` tag, which begins a new line of text. + +### Syntax + +``` +htp.nl ( + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.br ( + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cclear | The value for the CLEAR attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.center + +This generates the `
` and `
` tags, which center a section of text within a web page. + +### Syntax + +``` +htp.center(ctext in varchar2); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | Centers the text. | + +## htp.centerOpen and htp.centerClose + +This generates the `
` and `
` tags, which mark the section of text to center. + +### Syntax + +``` +htp.centerOpen; + +htp.centerClose; +``` + +## htp.cite + +This generates the `` and `` tags, which direct the browser to render the text as citation. + +### Syntax + +``` +htp.cite ( + ctext in varchar2 + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text to render as citation. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.code + +This generates the `` and `` tags, which direct the browser to render the text in monospace font. + +### Syntax + +``` +htp.code ( + ctext in varchar2 + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text to render as code. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.comment + +This generates the comment tags ``. + +### Syntax + +``` +htp.comment (ctext in varchar2); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text in the comment. | + +## htp.dfn + +This generates the `` and `` tags, which direct the browser to render the text in italics. + +### Syntax + +``` +htp.dfn(ctext in varchar2); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text to render in italics. | + +## htp.dirlistOpen and htp.dirlistClose + +This generates the `` and `` tags, which create a directory list section. + +### Syntax + +``` +htp.dirlistOpen; + +htp.dirlistClose; +``` + +## htp.div + +This generates the `
` tag, which creates document divisions. + +### Syntax + +``` +htp.div( + calign in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| calign | The value for the ALIGN attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.dlistDef + +This generates the `
` tag, which inserts definitions of terms. Use this tag for a definition list `
`. Terms are tagged `
` and definitions are tagged `
`. + +### Syntax + +``` +htp.dlistDef( + ctext in varchar2 DEFAULT NULL + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The definition for the term. | +| cclear | The value for the CLEAR attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.dlistOpen and htp.dlistClose + +This generates the `
` and `
` tags, which create a definition list. + +### Syntax + +``` +htp.dlistOpen ( + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.dlistClose; +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cclear | The value for the CLEAR attribute. +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.dlistTerm + +This generates the `
` tag, which defines a term in a definition list `
`. + +### Syntax + +``` +htp.dlistTerm ( + ctext in varchar2 DEFAULT NULL + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The term. | +| cclear | The value for the CLEAR attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.em and htp.emphasis + +This generates the `` and `` tags, which define text to be emphasized. + +### Syntax + +``` +htp.em ( + ctext in varchar2 + cattributes in varchar2 DEFAULT NULL); + +htp.emphasis ( + ctext in varchar2 + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text to emphasize. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.escape_sc + +This replaces characters that have special meaning in HTML with their escape sequences. The following characters are converted: + +- `&` to `&` +- `""` to `":` +- `<` to `<` +- `>` to `>` + +### Syntax + +``` +htp.escape_sc(ctext in varchar2); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The string to convert. | + +## htp.fontOpen and htp.fontClose + +This generates the `` and `` tags, which mark a section of text with the specified font characteristics. + +### Syntax + +``` +htp.fontOpen( + ccolor in varchar2 DEFAULT NULL + cface in varchar2 DEFAULT NULL + csize in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.fontClose; +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ccolor | The value for the COLOR attribute. | +| cface | The value for the FACE attribute. | +| csize | The value for the SIZE attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.formCheckbox + +This generates the `` tag with `TYPE="checkbox"`, which inserts a checkbox element in a form. A checkbox element is a button that the user toggles on or off. + +### Syntax + +``` +htp.formCheckbox ( + cname in varchar2 + cvalue in varchar2 DEFAULT 'on' + cchecked in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +|cname | The value for the NAME attribute. | +| cvalue | The value for the VALUE attribute. | +| cchecked | If the value for this parameter is not NULL, the CHECKED attribute is added to the tag. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.formFile + +This generates the `` tag with `TYPE="file"`, which allows the user to select files so that their contents may be submitted with a form. + +### Syntax + +``` +function formFile( + cname in varchar2 + caccept in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| caccept | A comma seperated list of MIME types for upload. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.formHidden + +This generates the `` tag with `TYPE="hidden"`, which inserts a hidden form element. This element is not seen by the user. It submits additional values to the script. + +### Syntax + +``` +htp.formHidden ( + cname in varchar2 + cvalue in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| cvalue | The value for the VALUE attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.formImage + +This generates the `` tag with `TYPE="image"`, which creates an image field that the user clicks to submit the form immediately. + +### Syntax + +``` +htp.formImage ( + cname in varchar2 + csrc in varchar2 + calign in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| csrc | The value for the SRC attribute, which specifies the image file. | +| calign | The value for the ALIGN attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.formOpen and htp.formClose + +This generates the `
` and `` tags, which create a form section in an HTML document. + +### Syntax + +``` +htp.formOpen ( + curl in varchar2 + cmethod in varchar2 DEFAULT 'POST' + ctarget in varchar2 DEFAULT NULL + cenctype in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.formClose; +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| curl | The URL of the WRB or CGI script where the contents of the form is sent. This parameter is required. | +| cmethod | The value for the METHOD attribute. The value can be ""GET"" or ""POST"". | +| ctarget | The value for the TARGET attribute. | +| cenctype | The value for the ENCTYPE attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.formPassword + +This generates the `` tag with `TYPE="password"`, which creates a single-line text entry field. + +### Syntax + +``` +htp.formPassword ( + cname in varchar2 + csize in varchar2 + cmaxlength in varchar2 DEFAULT NULL + cvalue in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| csize | The value for the SIZE attribute. | +| cmaxlength | The value for the MAXLENGTH attribute. | +| cvalue | The value for the VALUE attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.formRadio + +This generates the `` tag with `TYPE="radio"`, which creates a radio button on the HTML form. Within a set of radio buttons, the user selects only one. + +### Syntax + +``` +htp.formRadio ( + cname in varchar2 + cvalue in varchar2 + cchecked in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| cvalue | The value for the VALUE attribute. | +| cchecked | If the value for this parameter is not NULL, the CHECKED attribute is added to the tag. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.formReset + +This generates the `` tag with `TYPE="reset"`, which creates a button that, when selected, resets the form fields to their initial values. + +### Syntax + +``` +htp.formReset ( + cvalue in varchar2 DEFAULT 'Reset' + cattributes in varchar2 DEFAULT NULL); +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cvalue | The value for the VALUE attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + +## htp.formSelectOpen and htp.formSelectClose + +This generates the `` tags, which creates a select form element. A select form element is a listbox where the user selects one or more values. + +### Syntax + +``` +htp.formSelectOpen ( + cname in varchar2 + cprompt in varchar2 DEFAULT NULL + nsize in integer DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.formSelectClose; +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| cprompt | The string preceding the list box. | +| nsize | The value for the SIZE attribute. | +| cattributes | Other attributes to be included as-is in the tag.| \ No newline at end of file From f11bc660255bdbc5cbd518c38b7df9656d0235e6 Mon Sep 17 00:00:00 2001 From: Chris Estes <106166814+ccestes@users.noreply.github.com> Date: Mon, 23 Jan 2023 14:59:28 -0500 Subject: [PATCH 42/77] structure prototype --- .../03_built-in_packages/htp.mdx | 735 ------------------ .../htp_and_htf/address.mdx | 29 + .../htp_and_htf/anchor.mdx | 40 + .../htp_and_htf/applet.mdx | 36 + .../03_built-in_packages/htp_and_htf/area.mdx | 34 + .../03_built-in_packages/htp_and_htf/base.mdx | 25 + .../03_built-in_packages/htp_and_htf/body.mdx | 31 + .../htp_and_htf/comment.mdx | 25 + .../htp_and_htf/index.mdx | 43 + .../htp_and_htf/template.mdx | 6 + 10 files changed, 269 insertions(+), 735 deletions(-) delete mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/address.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/area.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/comment.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/template.mdx diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp.mdx deleted file mode 100644 index 8ba949d2ac9..00000000000 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp.mdx +++ /dev/null @@ -1,735 +0,0 @@ ---- -title: HTP ---- - -## htp.address - -This generates the `
` and `
` tags, which specify the address, author and signature of a document. - -### Syntax - -```text -htp.address ( - cvalue in varchar2 - cnowrap in varchar2 DEFAULT NULL - cclear in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cvalue | The string that goes between the `
` and `
` tags. | -| cnowrap | If the value for this parameter is not NULL, the NOWRAP attribute is included in the tag. | -| cclear | The value for the CLEAR attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.anchor and htp.anchor2 - -This generates the `` and `` HTML tags, which specify the source or destination of a hypertext link. - -### Syntax - -```text -htp.anchor ( - curl in varchar2 - ctext in varchar2 - cname in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` -```text -htp.anchor2 ( - curl in varchar2 - ctext in varchar2 - cname in varchar2 DEFAULT NULL - ctarget in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| curl | The value for the HREF attribute. | -| ctext | The string that goes between the `` and `` tags. | -| cname | The value for the NAME attribute. | -| ctarget | The value for the TARGET attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.appletopen and htp.appletclose - -`htp.appletopen` generates the `` HTML tag, which begins the invocation of a Java applet. Close the applet invocation with `htp.appletclose`, which generates the `` HTML tag. - -### Syntax - -```text -htp.appletopen( - ccode in varchar2 - cheight in number - cwidth in number - cattributes in varchar2 DEFAULT NULL); - - -htp.appletclose; -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ccode | The value for the CODE attribute, which specifies the name of the applet class. | -| cheight | The value for the HEIGHT attribute. | -| cwidth | The value for the WIDTH attribute. | - -## htp.area - -This generates the `` HTML tag, which defines a client-side image map. - -### Syntax - -``` -htp.area( - ccoords in varchar2 - cshape in varchar2 DEFAULT NULL - chref in varchar2 DEFAULT NULL - cnohref in varchar2 DEFAULT NULL - ctarget in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ccoords | The value for the COORDS attribute. | -| cshape | The value for the SHAPE attribute. | -| chref | The value for the HREF attribute. | -| cnohref | If the value for this parameter is not NULL, NOHREF attribute is added to the tag. | -| ctarget | The value for the TARGET attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.base - - - -### Syntax - -``` -htp.base(ctarget, cattributes) return varchar2; -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | - -## htp.basefont - -This generates the `` HTML tag, which specifies the base font size for a Web page. - -### Syntax - -``` -htp.basefont(nsize in integer); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| nsize | The value for the SIZE attribute. | - -## htp.bgsound - -This generates the `` HTML tag, which includes audio for a web page. - -### Syntax - -``` -htp.bgsound( - csrc in varchar2 - cloop in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| csrc | The value for the SRC attribute. | -| cloop | The value for the LOOP attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.big - -This generates the `` and `` tags, which increases font size - -### Syntax - -``` -htp.big( -ctext IN VARCHAR2 CHARACTER SET ANY_CS, -cattributes IN VARCHAR2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ctext | The text that goes between the tags. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.blockquoteOpen and htp.blockquoteClose - -This generates the `
` and `
` tag, which mark a section of quoted text. - -### Syntax - -``` -htp.blockquoteOpen ( - cnowrap in varchar2 DEFAULT NULL - cclear in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); - -htp.blockquoteClose; -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cnowrap | If the value for this parameter is not NULL, the NOWRAP attribute is added to the tag. | -| cclear | The value for the CLEAR attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.bodyOpen and htp.bodyClose - -This generates the `` and `` tags, which mark the body section of an HTML document. - -### Syntax - -``` -htp.bodyOpen( - cbackground in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); - -htp.bodyClose; -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cbackground | The value for the BACKGROUND attribute, which specifies a graphic file to use for the background of the document. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.bold - -This generates the `` and `` tags, which direct the browser to display the text in boldface. - -### Syntax - -``` -htp.bold ( - ctext in varchar2 - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ctext | The text that goes between the tags. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.nl and htp.br - -This generates the `
` tag, which begins a new line of text. - -### Syntax - -``` -htp.nl ( - cclear in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); - -htp.br ( - cclear in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cclear | The value for the CLEAR attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.center - -This generates the `
` and `
` tags, which center a section of text within a web page. - -### Syntax - -``` -htp.center(ctext in varchar2); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ctext | Centers the text. | - -## htp.centerOpen and htp.centerClose - -This generates the `
` and `
` tags, which mark the section of text to center. - -### Syntax - -``` -htp.centerOpen; - -htp.centerClose; -``` - -## htp.cite - -This generates the `` and `` tags, which direct the browser to render the text as citation. - -### Syntax - -``` -htp.cite ( - ctext in varchar2 - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ctext | The text to render as citation. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.code - -This generates the `` and `` tags, which direct the browser to render the text in monospace font. - -### Syntax - -``` -htp.code ( - ctext in varchar2 - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ctext | The text to render as code. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.comment - -This generates the comment tags ``. - -### Syntax - -``` -htp.comment (ctext in varchar2); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ctext | The text in the comment. | - -## htp.dfn - -This generates the `` and `` tags, which direct the browser to render the text in italics. - -### Syntax - -``` -htp.dfn(ctext in varchar2); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ctext | The text to render in italics. | - -## htp.dirlistOpen and htp.dirlistClose - -This generates the `` and `` tags, which create a directory list section. - -### Syntax - -``` -htp.dirlistOpen; - -htp.dirlistClose; -``` - -## htp.div - -This generates the `
` tag, which creates document divisions. - -### Syntax - -``` -htp.div( - calign in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| calign | The value for the ALIGN attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.dlistDef - -This generates the `
` tag, which inserts definitions of terms. Use this tag for a definition list `
`. Terms are tagged `
` and definitions are tagged `
`. - -### Syntax - -``` -htp.dlistDef( - ctext in varchar2 DEFAULT NULL - cclear in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ctext | The definition for the term. | -| cclear | The value for the CLEAR attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.dlistOpen and htp.dlistClose - -This generates the `
` and `
` tags, which create a definition list. - -### Syntax - -``` -htp.dlistOpen ( - cclear in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); - -htp.dlistClose; -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cclear | The value for the CLEAR attribute. -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.dlistTerm - -This generates the `
` tag, which defines a term in a definition list `
`. - -### Syntax - -``` -htp.dlistTerm ( - ctext in varchar2 DEFAULT NULL - cclear in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ctext | The term. | -| cclear | The value for the CLEAR attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.em and htp.emphasis - -This generates the `` and `` tags, which define text to be emphasized. - -### Syntax - -``` -htp.em ( - ctext in varchar2 - cattributes in varchar2 DEFAULT NULL); - -htp.emphasis ( - ctext in varchar2 - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ctext | The text to emphasize. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.escape_sc - -This replaces characters that have special meaning in HTML with their escape sequences. The following characters are converted: - -- `&` to `&` -- `""` to `":` -- `<` to `<` -- `>` to `>` - -### Syntax - -``` -htp.escape_sc(ctext in varchar2); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ctext | The string to convert. | - -## htp.fontOpen and htp.fontClose - -This generates the `` and `` tags, which mark a section of text with the specified font characteristics. - -### Syntax - -``` -htp.fontOpen( - ccolor in varchar2 DEFAULT NULL - cface in varchar2 DEFAULT NULL - csize in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); - -htp.fontClose; -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| ccolor | The value for the COLOR attribute. | -| cface | The value for the FACE attribute. | -| csize | The value for the SIZE attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.formCheckbox - -This generates the `` tag with `TYPE="checkbox"`, which inserts a checkbox element in a form. A checkbox element is a button that the user toggles on or off. - -### Syntax - -``` -htp.formCheckbox ( - cname in varchar2 - cvalue in varchar2 DEFAULT 'on' - cchecked in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -|cname | The value for the NAME attribute. | -| cvalue | The value for the VALUE attribute. | -| cchecked | If the value for this parameter is not NULL, the CHECKED attribute is added to the tag. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.formFile - -This generates the `` tag with `TYPE="file"`, which allows the user to select files so that their contents may be submitted with a form. - -### Syntax - -``` -function formFile( - cname in varchar2 - caccept in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cname | The value for the NAME attribute. | -| caccept | A comma seperated list of MIME types for upload. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.formHidden - -This generates the `` tag with `TYPE="hidden"`, which inserts a hidden form element. This element is not seen by the user. It submits additional values to the script. - -### Syntax - -``` -htp.formHidden ( - cname in varchar2 - cvalue in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cname | The value for the NAME attribute. | -| cvalue | The value for the VALUE attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.formImage - -This generates the `` tag with `TYPE="image"`, which creates an image field that the user clicks to submit the form immediately. - -### Syntax - -``` -htp.formImage ( - cname in varchar2 - csrc in varchar2 - calign in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cname | The value for the NAME attribute. | -| csrc | The value for the SRC attribute, which specifies the image file. | -| calign | The value for the ALIGN attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.formOpen and htp.formClose - -This generates the `
` and `` tags, which create a form section in an HTML document. - -### Syntax - -``` -htp.formOpen ( - curl in varchar2 - cmethod in varchar2 DEFAULT 'POST' - ctarget in varchar2 DEFAULT NULL - cenctype in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); - -htp.formClose; -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| curl | The URL of the WRB or CGI script where the contents of the form is sent. This parameter is required. | -| cmethod | The value for the METHOD attribute. The value can be ""GET"" or ""POST"". | -| ctarget | The value for the TARGET attribute. | -| cenctype | The value for the ENCTYPE attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.formPassword - -This generates the `` tag with `TYPE="password"`, which creates a single-line text entry field. - -### Syntax - -``` -htp.formPassword ( - cname in varchar2 - csize in varchar2 - cmaxlength in varchar2 DEFAULT NULL - cvalue in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cname | The value for the NAME attribute. | -| csize | The value for the SIZE attribute. | -| cmaxlength | The value for the MAXLENGTH attribute. | -| cvalue | The value for the VALUE attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.formRadio - -This generates the `` tag with `TYPE="radio"`, which creates a radio button on the HTML form. Within a set of radio buttons, the user selects only one. - -### Syntax - -``` -htp.formRadio ( - cname in varchar2 - cvalue in varchar2 - cchecked in varchar2 DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cname | The value for the NAME attribute. | -| cvalue | The value for the VALUE attribute. | -| cchecked | If the value for this parameter is not NULL, the CHECKED attribute is added to the tag. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.formReset - -This generates the `` tag with `TYPE="reset"`, which creates a button that, when selected, resets the form fields to their initial values. - -### Syntax - -``` -htp.formReset ( - cvalue in varchar2 DEFAULT 'Reset' - cattributes in varchar2 DEFAULT NULL); -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cvalue | The value for the VALUE attribute. | -| cattributes | Other attributes to be included as-is in the tag. | - -## htp.formSelectOpen and htp.formSelectClose - -This generates the `` tags, which creates a select form element. A select form element is a listbox where the user selects one or more values. - -### Syntax - -``` -htp.formSelectOpen ( - cname in varchar2 - cprompt in varchar2 DEFAULT NULL - nsize in integer DEFAULT NULL - cattributes in varchar2 DEFAULT NULL); - -htp.formSelectClose; -``` - -### Parameters - -| Parameter | Function | -| --------- | -------- | -| cname | The value for the NAME attribute. | -| cprompt | The string preceding the list box. | -| nsize | The value for the SIZE attribute. | -| cattributes | Other attributes to be included as-is in the tag.| \ No newline at end of file diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/address.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/address.mdx new file mode 100644 index 00000000000..4efd2f2736b --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/address.mdx @@ -0,0 +1,29 @@ +--- +title: address +--- + +This generates the `
` and `
` tags, which specify the address, author and signature of a document. + +## Syntax + +The following is the syntax for htp: +``` +htp.address ( + cvalue in varchar2 + cnowrap in varchar2 DEFAULT NULL + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for htf: +``` +htf.address (cvalue, cnowrap, cclear, cattributes) return varchar2; +``` +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cvalue | The string that goes between the `
` and `
` tags. | +| cnowrap | If the value for this parameter is not NULL, the NOWRAP attribute is included in the tag. | +| cclear | The value for the CLEAR attribute. | +| cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx new file mode 100644 index 00000000000..20343b277ce --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx @@ -0,0 +1,40 @@ +--- +title: anchor and anchor2 +--- + +This generates the `` and `` HTML tags, which specify the source or destination of a hypertext link. + +### Syntax + +The following is the syntax for htp: +``` +htp.anchor ( + curl in varchar2 + ctext in varchar2 + cname in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.anchor2 ( + curl in varchar2 + ctext in varchar2 + cname in varchar2 DEFAULT NULL + ctarget in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for htf: +``` +htf.anchor (curl, ctext, cname, cattributes) return varchar2; + +htf.anchor2 (curl, ctext, cname, ctarget, cattributes) return varchar2; +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| curl | The value for the HREF attribute. | +| ctext | The string that goes between the `` and `` tags. | +| cname | The value for the NAME attribute. | +| ctarget | The value for the TARGET attribute. | +| cattributes | Other attributes to be included as-is in the tag. | \ No newline at end of file diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx new file mode 100644 index 00000000000..83e55f47fb8 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx @@ -0,0 +1,36 @@ +--- +title: appletOpen and appletClose +--- + +`htp.appletopen` generates the `` HTML tag, which begins the invocation of a Java applet. Close the applet invocation with `htp.appletclose`, which generates the `` HTML tag. + +### Syntax + + +The following is the syntax for htp: +``` +htp.appletopen( + ccode in varchar2 + cheight in number + cwidth in number + cattributes in varchar2 DEFAULT NULL); + + +htp.appletclose; +``` + +The following is the syntax for htf: +``` +htf.appletopen(ccode, cheight, cwidth, cattributes) return varchar2; +htf.appletclose return varchar2; +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ccode | The value for the CODE attribute, which specifies the name of the applet class. | +| cheight | The value for the HEIGHT attribute. | +| cwidth | The value for the WIDTH attribute. | + + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/area.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/area.mdx new file mode 100644 index 00000000000..e606562472c --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/area.mdx @@ -0,0 +1,34 @@ +--- +title: area +--- + +This generates the `` HTML tag, which defines a client-side image map. + +## Syntax + +The following is the syntax for htp: +``` +htp.area( + ccoords in varchar2 + cshape in varchar2 DEFAULT NULL + chref in varchar2 DEFAULT NULL + cnohref in varchar2 DEFAULT NULL + ctarget in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for htf: +``` +htf.area(ccoords, cshape, chref, cnohref, ctarget, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ccoords | The value for the COORDS attribute. | +| cshape | The value for the SHAPE attribute. | +| chref | The value for the HREF attribute. | +| cnohref | If the value for this parameter is not NULL, NOHREF attribute is added to the tag. | +| ctarget | The value for the TARGET attribute. | +| cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx new file mode 100644 index 00000000000..bb52628b2d8 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx @@ -0,0 +1,25 @@ +--- +title: base +--- + +This generates the `` HTML tag, which records the URL of the document. + +### Syntax + +The following is the syntax for htp: +``` +htp.base(ctarget, cattributes) return varchar2; +``` + +The following is the syntax for htf: +``` +htf.base(ctarget, cattributes) return varchar2; +``` + +### Parameters + +| Parameter | Function | +| --------- | -------- | +| ctarget | The value for the TARGET attribute, which establishes a window name to which all links in this document are targeted. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx new file mode 100644 index 00000000000..5f6c12e13a5 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx @@ -0,0 +1,31 @@ +--- +title: bodyOpen and bodyClose +--- + +This generates the `` and `` tags, which mark the body section of an HTML document. + +## Syntax + +The following is the syntax for htp: +``` +htp.bodyOpen( + cbackground in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.bodyClose; +``` + +The following is the syntax for htf: +``` +htf.bodyOpen(cbackground, cattributes) return varchar2; + +htf.bodyClose return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cbackground | The value for the BACKGROUND attribute, which specifies a graphic file to use for the background of the document. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/comment.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/comment.mdx new file mode 100644 index 00000000000..028f2da91ea --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/comment.mdx @@ -0,0 +1,25 @@ +--- +title: comment +--- + +This generates the comment tags ``. + +## Syntax + +The following is the syntax for htp: +``` +htp.comment (ctext in varchar2); +``` + +The following is the syntax for htf: +``` +htf.comment (ctext in varchar2) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text in the comment. | + + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx new file mode 100644 index 00000000000..ef94419981a --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx @@ -0,0 +1,43 @@ +--- +title: htp and htf +--- + +The *htp* (hypertext procedures) and *htf* (hypertext functions) Oracle packages generate HTML tags. These packages are supported in EDB Postgres Advanced Server version 15 onwards. Each htp procedure has a corresponding htf function, which generates the same HTML tags and uses the same parameters but differ in their syntax. For example, `htp.address` and `htf.address` both generate the `
` and `
` tags, use the same parameters, but have different syntaxes: + +``` +htp.address ( + cvalue in varchar2 + cnowrap in varchar2 DEFAULT NULL + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` +``` +htf.address (cvalue, cnowrap, cclear, cattributes) return varchar2; +``` + +## HTML, HEAD, and BODY tags + +- [bodyOpen and bodyClose](body) — Generates `` and `` + +## Comment tag + +- [comment](comment) — Generates `` + +## HEAD area tags + +- [base](base) — Generates `` + +## Applet tags + +- [appletOpen and appletClose](applet) — Generates `` + +## IMG, HR, and A tags + +- [anchor and anchor2](anchor) — Generates `` + +## Paragraph formatting tags + +- [address](address) — Generates `
` + + + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/template.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/template.mdx new file mode 100644 index 00000000000..1c1c6fea002 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/template.mdx @@ -0,0 +1,6 @@ +--- +title: +--- + +The following is the syntax for htp: +The following is the syntax for htf: \ No newline at end of file From 86de878de8dbb6574474a780d81867afc23f11c0 Mon Sep 17 00:00:00 2001 From: Chris Estes <106166814+ccestes@users.noreply.github.com> Date: Wed, 25 Jan 2023 12:46:15 -0500 Subject: [PATCH 43/77] prototype tweaks --- .../htp_and_htf/address.mdx | 8 +++--- .../htp_and_htf/anchor.mdx | 6 ++-- .../htp_and_htf/applet.mdx | 6 ++-- .../03_built-in_packages/htp_and_htf/area.mdx | 8 +++--- .../03_built-in_packages/htp_and_htf/base.mdx | 6 ++-- .../03_built-in_packages/htp_and_htf/body.mdx | 6 ++-- .../htp_and_htf/comment.mdx | 6 ++-- .../htp_and_htf/index.mdx | 28 +++++++++++++------ .../htp_and_htf/template.mdx | 6 ++-- 9 files changed, 45 insertions(+), 35 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/address.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/address.mdx index 4efd2f2736b..38b59310cfd 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/address.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/address.mdx @@ -1,12 +1,12 @@ --- -title: address +title: ADDRESS --- This generates the `
` and `
` tags, which specify the address, author and signature of a document. ## Syntax -The following is the syntax for htp: +The following is the syntax for HTP: ``` htp.address ( cvalue in varchar2 @@ -15,7 +15,7 @@ htp.address ( cattributes in varchar2 DEFAULT NULL); ``` -The following is the syntax for htf: +The following is the syntax for HTF: ``` htf.address (cvalue, cnowrap, cclear, cattributes) return varchar2; ``` @@ -24,6 +24,6 @@ htf.address (cvalue, cnowrap, cclear, cattributes) return varchar2; | Parameter | Function | | --------- | -------- | | cvalue | The string that goes between the `
` and `
` tags. | -| cnowrap | If the value for this parameter is not NULL, the NOWRAP attribute is included in the tag. | +| cnowrap | If the value for this parameter is not `NULL`, the NOWRAP attribute is included in the tag. | | cclear | The value for the CLEAR attribute. | | cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx index 20343b277ce..07c383274d0 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx @@ -1,12 +1,12 @@ --- -title: anchor and anchor2 +title: ANCHOR and ANCHOR2 --- This generates the `
` and `` HTML tags, which specify the source or destination of a hypertext link. ### Syntax -The following is the syntax for htp: +The following is the syntax for HTP: ``` htp.anchor ( curl in varchar2 @@ -22,7 +22,7 @@ htp.anchor2 ( cattributes in varchar2 DEFAULT NULL); ``` -The following is the syntax for htf: +The following is the syntax for HTF: ``` htf.anchor (curl, ctext, cname, cattributes) return varchar2; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx index 83e55f47fb8..f709beeb1ab 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx @@ -1,5 +1,5 @@ --- -title: appletOpen and appletClose +title: APPLETOPEN and APPLETCLOSE --- `htp.appletopen` generates the `` HTML tag, which begins the invocation of a Java applet. Close the applet invocation with `htp.appletclose`, which generates the `` HTML tag. @@ -7,7 +7,7 @@ title: appletOpen and appletClose ### Syntax -The following is the syntax for htp: +The following is the syntax for HTP: ``` htp.appletopen( ccode in varchar2 @@ -19,7 +19,7 @@ htp.appletopen( htp.appletclose; ``` -The following is the syntax for htf: +The following is the syntax for HTF: ``` htf.appletopen(ccode, cheight, cwidth, cattributes) return varchar2; htf.appletclose return varchar2; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/area.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/area.mdx index e606562472c..c18a03d6d97 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/area.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/area.mdx @@ -1,12 +1,12 @@ --- -title: area +title: AREA --- This generates the `` HTML tag, which defines a client-side image map. ## Syntax -The following is the syntax for htp: +The following is the syntax for HTP: ``` htp.area( ccoords in varchar2 @@ -17,7 +17,7 @@ htp.area( cattributes in varchar2 DEFAULT NULL); ``` -The following is the syntax for htf: +The following is the syntax for HTF: ``` htf.area(ccoords, cshape, chref, cnohref, ctarget, cattributes) return varchar2; ``` @@ -29,6 +29,6 @@ htf.area(ccoords, cshape, chref, cnohref, ctarget, cattributes) return varchar2; | ccoords | The value for the COORDS attribute. | | cshape | The value for the SHAPE attribute. | | chref | The value for the HREF attribute. | -| cnohref | If the value for this parameter is not NULL, NOHREF attribute is added to the tag. | +| cnohref | If the value for this parameter is not `NULL`, NOHREF attribute is added to the tag. | | ctarget | The value for the TARGET attribute. | | cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx index bb52628b2d8..fbdb3f623aa 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx @@ -1,17 +1,17 @@ --- -title: base +title: BASE --- This generates the `` HTML tag, which records the URL of the document. ### Syntax -The following is the syntax for htp: +The following is the syntax for HTP: ``` htp.base(ctarget, cattributes) return varchar2; ``` -The following is the syntax for htf: +The following is the syntax for HTF: ``` htf.base(ctarget, cattributes) return varchar2; ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx index 5f6c12e13a5..b71cf0639f6 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx @@ -1,12 +1,12 @@ --- -title: bodyOpen and bodyClose +title: BODYOPEN and BODYCLOSE --- This generates the `` and `` tags, which mark the body section of an HTML document. ## Syntax -The following is the syntax for htp: +The following is the syntax for HTP: ``` htp.bodyOpen( cbackground in varchar2 DEFAULT NULL @@ -15,7 +15,7 @@ htp.bodyOpen( htp.bodyClose; ``` -The following is the syntax for htf: +The following is the syntax for HTF: ``` htf.bodyOpen(cbackground, cattributes) return varchar2; diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/comment.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/comment.mdx index 028f2da91ea..4b5ef6c8f68 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/comment.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/comment.mdx @@ -1,17 +1,17 @@ --- -title: comment +title: COMMENT --- This generates the comment tags ``. ## Syntax -The following is the syntax for htp: +The following is the syntax for HTP: ``` htp.comment (ctext in varchar2); ``` -The following is the syntax for htf: +The following is the syntax for HTF: ``` htf.comment (ctext in varchar2) return varchar2; ``` diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx index ef94419981a..1335712a9b5 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx @@ -1,8 +1,8 @@ --- -title: htp and htf +title: HTP and HTF --- -The *htp* (hypertext procedures) and *htf* (hypertext functions) Oracle packages generate HTML tags. These packages are supported in EDB Postgres Advanced Server version 15 onwards. Each htp procedure has a corresponding htf function, which generates the same HTML tags and uses the same parameters but differ in their syntax. For example, `htp.address` and `htf.address` both generate the `
` and `
` tags, use the same parameters, but have different syntaxes: +The hypertext procedures (HTP) and hypertext functions (HTF) Oracle packages generate HTML tags. These packages are supported in EDB Postgres Advanced Server version 15 onwards. Each HTP has a corresponding HTF, which generates the same HTML tags and uses the same parameters but differ in their syntax. For example, `htp.address` and `htf.address` both generate the `
` and `
` tags, use the same parameters, but have different syntaxes: ``` htp.address ( @@ -17,27 +17,37 @@ htf.address (cvalue, cnowrap, cclear, cattributes) return varchar2; ## HTML, HEAD, and BODY tags -- [bodyOpen and bodyClose](body) — Generates `` and `` +- [BODYOPEN and BODYCLOSE](body) — Generates `` and `` -## Comment tag + **...** -- [comment](comment) — Generates `` +## COMMENT tag + +- [COMMENT](comment) — Generates `` ## HEAD area tags -- [base](base) — Generates `` +- [BASE](base) — Generates `` + + **...** ## Applet tags -- [appletOpen and appletClose](applet) — Generates `` +- [APPLETOPEN and APPLETCLOSE](applet) — Generates `` + + **...** ## IMG, HR, and A tags -- [anchor and anchor2](anchor) — Generates `` +- [ANCHOR and ANCHOR2](anchor) — Generates `` + + **...** ## Paragraph formatting tags -- [address](address) — Generates `
` +- [ADDRESS](address) — Generates `
` + + **...** diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/template.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/template.mdx index 1c1c6fea002..2cda06e5371 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/template.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/template.mdx @@ -1,6 +1,6 @@ --- -title: +title: template --- -The following is the syntax for htp: -The following is the syntax for htf: \ No newline at end of file +The following is the syntax for HTP: +The following is the syntax for HTF: \ No newline at end of file From 83c459cf36183a2278c5de3880ae15a4dc8c7095 Mon Sep 17 00:00:00 2001 From: Chris Estes <106166814+ccestes@users.noreply.github.com> Date: Thu, 26 Jan 2023 09:11:50 -0500 Subject: [PATCH 44/77] removed categories --- .../htp_and_htf/index.mdx | 37 ------------------- 1 file changed, 37 deletions(-) diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx index 1335712a9b5..af366eeb27b 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/index.mdx @@ -14,40 +14,3 @@ htp.address ( ``` htf.address (cvalue, cnowrap, cclear, cattributes) return varchar2; ``` - -## HTML, HEAD, and BODY tags - -- [BODYOPEN and BODYCLOSE](body) — Generates `` and `` - - **...** - -## COMMENT tag - -- [COMMENT](comment) — Generates `` - -## HEAD area tags - -- [BASE](base) — Generates `` - - **...** - -## Applet tags - -- [APPLETOPEN and APPLETCLOSE](applet) — Generates `` - - **...** - -## IMG, HR, and A tags - -- [ANCHOR and ANCHOR2](anchor) — Generates `` - - **...** - -## Paragraph formatting tags - -- [ADDRESS](address) — Generates `
` - - **...** - - - From 1999beef4cbda73b90b8cfde3f81b153ad22c023 Mon Sep 17 00:00:00 2001 From: Chris Estes <106166814+ccestes@users.noreply.github.com> Date: Thu, 26 Jan 2023 14:13:24 -0500 Subject: [PATCH 45/77] first half of topics --- .../htp_and_htf/anchor.mdx | 4 +- .../htp_and_htf/applet.mdx | 6 +-- .../03_built-in_packages/htp_and_htf/base.mdx | 4 +- .../htp_and_htf/basefont.mdx | 24 ++++++++++ .../htp_and_htf/bgsound.mdx | 29 ++++++++++++ .../03_built-in_packages/htp_and_htf/big.mdx | 29 ++++++++++++ .../htp_and_htf/blockquote.mdx | 35 ++++++++++++++ .../03_built-in_packages/htp_and_htf/body.mdx | 2 +- .../03_built-in_packages/htp_and_htf/bold.mdx | 27 +++++++++++ .../htp_and_htf/br_and_nl.mdx | 33 +++++++++++++ .../htp_and_htf/center.mdx | 23 ++++++++++ .../centeropen_and_centerclose.mdx | 21 +++++++++ .../03_built-in_packages/htp_and_htf/cite.mdx | 28 +++++++++++ .../03_built-in_packages/htp_and_htf/code.mdx | 27 +++++++++++ .../03_built-in_packages/htp_and_htf/dfn.mdx | 25 ++++++++++ .../htp_and_htf/dirlist.mdx | 21 +++++++++ .../03_built-in_packages/htp_and_htf/div.mdx | 26 +++++++++++ .../htp_and_htf/dlistdef.mdx | 28 +++++++++++ .../htp_and_htf/dlistopen_and_dlistclose.mdx | 30 ++++++++++++ .../htp_and_htf/dlistterm.mdx | 28 +++++++++++ .../htp_and_htf/em_and_emphasis.mdx | 33 +++++++++++++ .../htp_and_htf/escape_sc.mdx | 29 ++++++++++++ .../03_built-in_packages/htp_and_htf/font.mdx | 34 ++++++++++++++ .../htp_and_htf/formcheckbox.mdx | 31 +++++++++++++ .../htp_and_htf/formfile.mdx | 28 +++++++++++ .../htp_and_htf/formhidden.mdx | 29 ++++++++++++ .../htp_and_htf/formimage.mdx | 30 ++++++++++++ .../htp_and_htf/formopen_and_formclose.mdx | 37 +++++++++++++++ .../htp_and_htf/formpassword.mdx | 32 +++++++++++++ .../htp_and_htf/formradio.mdx | 31 +++++++++++++ .../htp_and_htf/formreset.mdx | 27 +++++++++++ .../formselectopen_and_formselectclose.mdx | 35 ++++++++++++++ .../htp_and_htf/formselectoption.mdx | 28 +++++++++++ .../htp_and_htf/formsubmit.mdx | 28 +++++++++++ .../htp_and_htf/formtext.mdx | 32 +++++++++++++ .../formtextarea_and_formtextarea2.mdx | 43 +++++++++++++++++ .../htp_and_htf/frame.mdx | 36 +++++++++++++++ .../framesetopen_and_framsetclose.mdx | 32 +++++++++++++ .../htp_and_htf/template.mdx | 19 +++++++- ...eaopen_textareaopen2_and_textareaclose.mdx | 46 +++++++++++++++++++ 40 files changed, 1081 insertions(+), 9 deletions(-) create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/basefont.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/bgsound.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/big.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/blockquote.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/bold.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/br_and_nl.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/center.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/centeropen_and_centerclose.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/cite.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/code.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dfn.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dirlist.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/div.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistdef.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistopen_and_dlistclose.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistterm.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/em_and_emphasis.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/escape_sc.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/font.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formcheckbox.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formfile.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formhidden.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formimage.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formopen_and_formclose.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formpassword.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formradio.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formreset.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formselectopen_and_formselectclose.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formselectoption.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formsubmit.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formtext.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formtextarea_and_formtextarea2.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/frame.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/framesetopen_and_framsetclose.mdx create mode 100644 product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/textareaopen_textareaopen2_and_textareaclose.mdx diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx index 07c383274d0..2364c105737 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/anchor.mdx @@ -4,7 +4,7 @@ title: ANCHOR and ANCHOR2 This generates the `` and `` HTML tags, which specify the source or destination of a hypertext link. -### Syntax +## Syntax The following is the syntax for HTP: ``` @@ -29,7 +29,7 @@ htf.anchor (curl, ctext, cname, cattributes) return varchar2; htf.anchor2 (curl, ctext, cname, ctarget, cattributes) return varchar2; ``` -### Parameters +## Parameters | Parameter | Function | | --------- | -------- | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx index f709beeb1ab..04a3d2dc2a7 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/applet.mdx @@ -1,10 +1,10 @@ --- -title: APPLETOPEN and APPLETCLOSE +title: APPLET --- `htp.appletopen` generates the `` HTML tag, which begins the invocation of a Java applet. Close the applet invocation with `htp.appletclose`, which generates the `` HTML tag. -### Syntax +## Syntax The following is the syntax for HTP: @@ -25,7 +25,7 @@ htf.appletopen(ccode, cheight, cwidth, cattributes) return varchar2; htf.appletclose return varchar2; ``` -### Parameters +## Parameters | Parameter | Function | | --------- | -------- | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx index fbdb3f623aa..1dfa5e31b6a 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/base.mdx @@ -4,7 +4,7 @@ title: BASE This generates the `` HTML tag, which records the URL of the document. -### Syntax +## Syntax The following is the syntax for HTP: ``` @@ -16,7 +16,7 @@ The following is the syntax for HTF: htf.base(ctarget, cattributes) return varchar2; ``` -### Parameters +## Parameters | Parameter | Function | | --------- | -------- | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/basefont.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/basefont.mdx new file mode 100644 index 00000000000..4c51db1f40e --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/basefont.mdx @@ -0,0 +1,24 @@ +--- +title: BASEFONT +--- + +This generates the `` HTML tag, which specifies the base font size for a web page. + +## Syntax + +The following is the syntax for HTP: +``` +htp.basefont(nsize in integer); +``` + +The following is the syntax for HTF: +``` +htf.basefont(nsize) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| nsize | The value for the SIZE attribute. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/bgsound.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/bgsound.mdx new file mode 100644 index 00000000000..93d0d79f676 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/bgsound.mdx @@ -0,0 +1,29 @@ +--- +title: BGSOUND +--- + +This generates the `` HTML tag, which includes audio for a web page. + +## Syntax + +The following is the syntax for HTP: +``` +htp.bgsound( + csrc in varchar2 + cloop in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.bgsound(csrc, cloop, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| csrc | The value for the SRC attribute. | +| cloop | The value for the LOOP attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/big.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/big.mdx new file mode 100644 index 00000000000..b951abe99f0 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/big.mdx @@ -0,0 +1,29 @@ +--- +title: BIG +--- + +This generates the `` and `` tags, which increases font size + +## Syntax + +The following is the syntax for HTP: +``` +htp.big( +ctext IN VARCHAR2 CHARACTER SET ANY_CS, +cattributes IN VARCHAR2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.big(ctext, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text that goes between the tags. | +| cattributes | Other attributes to be included as-is in the tag. | + + + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/blockquote.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/blockquote.mdx new file mode 100644 index 00000000000..f1be247f8ff --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/blockquote.mdx @@ -0,0 +1,35 @@ +--- +title: BLOCKQUOTE +--- + +This generates the `
` and `
` tag, which mark a section of quoted text. + +## Syntax + +The following is the syntax for HTP: +``` +htp.blockquoteOpen ( + cnowrap in varchar2 DEFAULT NULL + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.blockquoteClose; +``` + +The following is the syntax for HTF: +``` +htf.blockquoteOpen (cnowrap, cclear, cattributes) return varchar2; + +htf.blockquoteClose return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cnowrap | If the value for this parameter is not `NULL`, the NOWRAP attribute is added to the tag. | +| cclear | The value for the CLEAR attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + + + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx index b71cf0639f6..77f3ad90ffb 100644 --- a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/body.mdx @@ -1,5 +1,5 @@ --- -title: BODYOPEN and BODYCLOSE +title: BODY --- This generates the `` and `` tags, which mark the body section of an HTML document. diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/bold.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/bold.mdx new file mode 100644 index 00000000000..1521814d8d1 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/bold.mdx @@ -0,0 +1,27 @@ +--- +title: BOLD +--- + +This generates the `` and `` tags, which direct the browser to display the text in boldface. + +## Syntax + +The following is the syntax for HTP: +``` +htp.bold ( + ctext in varchar2 + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.bold (ctext, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text that goes between the tags. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/br_and_nl.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/br_and_nl.mdx new file mode 100644 index 00000000000..86dc8e8bdee --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/br_and_nl.mdx @@ -0,0 +1,33 @@ +--- +title: BR and NL +--- + +This generates the `
` tag, which begins a new line of text. + +## Syntax + +The following is the syntax for HTP: +``` +htp.nl ( + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.br ( + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.nl (cclear, cattributes) return varchar2; + +htf.br (cclear, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cclear | The value for the CLEAR attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/center.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/center.mdx new file mode 100644 index 00000000000..623f439b118 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/center.mdx @@ -0,0 +1,23 @@ +--- +title: CENTER +--- + +This generates the `
` and `
` tags, which center a section of text within a web page. + +## Syntax + +The following is the syntax for HTP: +``` +htp.center(ctext in varchar2); +``` + +The following is the syntax for HTF: +``` +htf.center(ctext in varchar2) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | Centers the text. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/centeropen_and_centerclose.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/centeropen_and_centerclose.mdx new file mode 100644 index 00000000000..5fc805831c6 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/centeropen_and_centerclose.mdx @@ -0,0 +1,21 @@ +--- +title: CENTEROPEN and CENTERCLOSE +--- + +This generates the `
` and `
` tags, which mark the section of text to center. + +## Syntax + +The following is the syntax for HTP: +``` +htp.centerOpen; + +htp.centerClose; +``` + +The following is the syntax for HTF: +``` +htf.centerOpen return varchar2; + +htf.centerClose return varchar2; +``` \ No newline at end of file diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/cite.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/cite.mdx new file mode 100644 index 00000000000..5389c54ee99 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/cite.mdx @@ -0,0 +1,28 @@ +--- +title: CITE +--- + +This generates the `` and `` tags, which direct the browser to render the text as citation. + +## Syntax + +The following is the syntax for HTP: +``` +htp.cite ( + ctext in varchar2 + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.cite (ctext, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text to render as citation. | +| cattributes | Other attributes to be included as-is in the tag. | + + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/code.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/code.mdx new file mode 100644 index 00000000000..a94e7160864 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/code.mdx @@ -0,0 +1,27 @@ +--- +title: CODE +--- + +This generates the `` and `` tags, which direct the browser to render the text in monospace font. + +## Syntax + +The following is the syntax for HTP: +``` +htp.code ( + ctext in varchar2 + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.code (ctext, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text to render as code. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dfn.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dfn.mdx new file mode 100644 index 00000000000..925eac95e92 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dfn.mdx @@ -0,0 +1,25 @@ +--- +title: DFN +--- + +This generates the `` and `` tags, which direct the browser to render the text in italics. + +## Syntax + +The following is the syntax for HTP: +``` +htp.dfn(ctext in varchar2); +``` + +The following is the syntax for HTF: +``` +htf.dfn(ctext in varchar2) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text to render in italics. | + + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dirlist.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dirlist.mdx new file mode 100644 index 00000000000..2dde9ffa4fb --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dirlist.mdx @@ -0,0 +1,21 @@ +--- +title: DIRLIST +--- + +This generates the `` and `` tags, which create a directory list section. + +## Syntax + +The following is the syntax for HTP: +``` +htp.dirlistOpen; + +htp.dirlistClose; +``` + +The following is the syntax for HTF: +``` +htf.dirlistOpen return varchar2; + +htf.dirlistClose return varchar2; +``` \ No newline at end of file diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/div.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/div.mdx new file mode 100644 index 00000000000..64ea8338438 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/div.mdx @@ -0,0 +1,26 @@ +--- +title: DIV +--- + +This generates the `
` tag, which creates document divisions. + +## Syntax + +The following is the syntax for HTP: +``` +htp.div( + calign in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.div(calign, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| calign | The value for the ALIGN attribute. | +| cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistdef.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistdef.mdx new file mode 100644 index 00000000000..4f71f3f55d6 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistdef.mdx @@ -0,0 +1,28 @@ +--- +title: DLISTDEF +--- + +This generates the `
` tag, which inserts definitions of terms. Use this tag for a definition list `
`. Terms are tagged `
` and definitions are tagged `
`. + +## Syntax + +The following is the syntax for HTP: +``` +htp.dlistDef( + ctext in varchar2 DEFAULT NULL + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.dlistDef(ctext, cclear, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The definition for the term. | +| cclear | The value for the CLEAR attribute. | +| cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistopen_and_dlistclose.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistopen_and_dlistclose.mdx new file mode 100644 index 00000000000..1424fc5cef0 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistopen_and_dlistclose.mdx @@ -0,0 +1,30 @@ +--- +title: DLISTOPEN and DLISTCLOSE +--- + +This generates the `
` and `
` tags, which create a definition list. + +## Syntax + +The following is the syntax for HTP: +``` +htp.dlistOpen ( + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.dlistClose; +``` + +The following is the syntax for HTF: +``` +htf.dlistOpen (cclear, cattributes) return varchar2; + +htf.dlistClose return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cclear | The value for the CLEAR attribute. +| cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistterm.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistterm.mdx new file mode 100644 index 00000000000..2c7eb5bb748 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/dlistterm.mdx @@ -0,0 +1,28 @@ +--- +title: DLISTTERM +--- + +This generates the `
` tag, which defines a term in a definition list `
`. + +## Syntax + +The following is the syntax for HTP: +``` +htp.dlistTerm ( + ctext in varchar2 DEFAULT NULL + cclear in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.dlistTerm (ctext, cclear, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The term. | +| cclear | The value for the CLEAR attribute. | +| cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/em_and_emphasis.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/em_and_emphasis.mdx new file mode 100644 index 00000000000..7921f164238 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/em_and_emphasis.mdx @@ -0,0 +1,33 @@ +--- +title: EM and EMPHASIS +--- + +This generates the `` and `` tags, which define text to be emphasized. + +## Syntax + +The following is the syntax for HTP: +``` +htp.em ( + ctext in varchar2 + cattributes in varchar2 DEFAULT NULL); + +htp.emphasis ( + ctext in varchar2 + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.em (ctext, cattributes) return varchar2; + +htf.emphasis (ctext, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The text to emphasize. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/escape_sc.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/escape_sc.mdx new file mode 100644 index 00000000000..ad7845b9c11 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/escape_sc.mdx @@ -0,0 +1,29 @@ +--- +title: ESCAPE_SC +--- + +This replaces characters that have special meaning in HTML with their escape sequences. The following characters are converted: + +- `&` to `&` +- `""` to `":` +- `<` to `<` +- `>` to `>` + +## Syntax + +The following is the syntax for HTP: +``` +htp.escape_sc(ctext in varchar2); +``` + +The following is the syntax for HTF: +``` +htf.escape_sc(ctext in varchar2) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ctext | The string to convert. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/font.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/font.mdx new file mode 100644 index 00000000000..7ab3ba04e1a --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/font.mdx @@ -0,0 +1,34 @@ +--- +title: FONT +--- + +This generates the `` and `` tags, which mark a section of text with the specified font characteristics. + +## Syntax + +The following is the syntax for HTP: +``` +htp.fontOpen( + ccolor in varchar2 DEFAULT NULL + cface in varchar2 DEFAULT NULL + csize in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.fontClose; +``` + +The following is the syntax for HTF: +``` +htf.fontOpen(ccolor, cface, csize, cattributes) return varchar2; + +htf.fontClose return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| ccolor | The value for the COLOR attribute. | +| cface | The value for the FACE attribute. | +| csize | The value for the SIZE attribute. | +| cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formcheckbox.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formcheckbox.mdx new file mode 100644 index 00000000000..839a9957de4 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formcheckbox.mdx @@ -0,0 +1,31 @@ +--- +title: FORMCHECKBOX +--- + +This generates the `` tag with `TYPE="checkbox"`, which inserts a checkbox element in a form. A checkbox element is a button that the user toggles on or off. + +## Syntax + +The following is the syntax for HTP: +``` +htp.formCheckbox ( + cname in varchar2 + cvalue in varchar2 DEFAULT 'on' + cchecked in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.formCheckbox (cname, cvalue, cchecked, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +|cname | The value for the NAME attribute. | +| cvalue | The value for the VALUE attribute. | +| cchecked | If the value for this parameter is not `NULL`, the CHECKED attribute is added to the tag. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formfile.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formfile.mdx new file mode 100644 index 00000000000..6254c443106 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formfile.mdx @@ -0,0 +1,28 @@ +--- +title: FORMFILE +--- + +This generates the `` tag with `TYPE="file"`, which allows the user to select files so that their contents may be submitted with a form. + +## Syntax + +The following is the syntax for HTP: +``` +function formFile( + cname in varchar2 + caccept in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.formFile (cname, caccept, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| caccept | A comma-seperated list of MIME types for upload. | +| cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formhidden.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formhidden.mdx new file mode 100644 index 00000000000..d8f173339b1 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formhidden.mdx @@ -0,0 +1,29 @@ +--- +title: FORMHIDDEN +--- + +This generates the `` tag with `TYPE="hidden"`, which inserts a hidden form element. This element is not seen by the user. It submits additional values to the script. + +## Syntax + +The following is the syntax for HTP: +``` +htp.formHidden ( + cname in varchar2 + cvalue in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.formHidden (cname, cvalue, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| cvalue | The value for the VALUE attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formimage.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formimage.mdx new file mode 100644 index 00000000000..921f6eb7065 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formimage.mdx @@ -0,0 +1,30 @@ +--- +title: FORMIMAGE +--- + +This generates the `` tag with `TYPE="image"`, which creates an image field that the user clicks to submit the form immediately. + +## Syntax + +The following is the syntax for HTP: +``` +htp.formImage ( + cname in varchar2 + csrc in varchar2 + calign in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.formImage (cname, csrc, calign, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| csrc | The value for the SRC attribute, which specifies the image file. | +| calign | The value for the ALIGN attribute. | +| cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formopen_and_formclose.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formopen_and_formclose.mdx new file mode 100644 index 00000000000..e294120f2b6 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formopen_and_formclose.mdx @@ -0,0 +1,37 @@ +--- +title: FORMOPEN and FORMCLOSE +--- + +This generates the `
` and `` tags, which create a form section in an HTML document. + +## Syntax + +The following is the syntax for HTP: +``` +htp.formOpen ( + curl in varchar2 + cmethod in varchar2 DEFAULT 'POST' + ctarget in varchar2 DEFAULT NULL + cenctype in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.formClose; +``` + +The following is the syntax for HTF: +``` +htf.formOpen (curl, cmethod, ctarget, cenctype, cattributes) return varchar2; + +htf.formClose return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| curl | The URL of the WRB or CGI script where the contents of the form is sent. This parameter is required. | +| cmethod | The value for the METHOD attribute. The value can be `'GET'` or `'POST'`. | +| ctarget | The value for the TARGET attribute. | +| cenctype | The value for the ENCTYPE attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formpassword.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formpassword.mdx new file mode 100644 index 00000000000..168ee2d558b --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formpassword.mdx @@ -0,0 +1,32 @@ +--- +title: FORMPASSWORD +--- + +This generates the `` tag with `TYPE="password"`, which creates a single-line text entry field. + +## Syntax + +The following is the syntax for HTP: +``` +htp.formPassword ( + cname in varchar2 + csize in varchar2 + cmaxlength in varchar2 DEFAULT NULL + cvalue in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.formPassword (cname, csize, cmaxlength, cvalue, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| csize | The value for the SIZE attribute. | +| cmaxlength | The value for the MAXLENGTH attribute. | +| cvalue | The value for the VALUE attribute. | +| cattributes | Other attributes to be included as-is in the tag. | diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formradio.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formradio.mdx new file mode 100644 index 00000000000..f14dc890d64 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formradio.mdx @@ -0,0 +1,31 @@ +--- +title: FORMRADIO +--- + +This generates the `` tag with `TYPE="radio"`, which creates a radio button on the HTML form. Within a set of radio buttons, the user selects only one. + +## Syntax + +The following is the syntax for HTP: +``` +htp.formRadio ( + cname in varchar2 + cvalue in varchar2 + cchecked in varchar2 DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.formRadio (cname, cvalue, cchecked, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| cvalue | The value for the VALUE attribute. | +| cchecked | If the value for this parameter is not `NULL`, the CHECKED attribute is added to the tag. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formreset.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formreset.mdx new file mode 100644 index 00000000000..1f3417d7192 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formreset.mdx @@ -0,0 +1,27 @@ +--- +title: FORMRESET +--- + +This generates the `` tag with `TYPE="reset"`, which creates a button that, when selected, resets the form fields to their initial values. + +## Syntax + +The following is the syntax for HTP: +``` +htp.formReset ( + cvalue in varchar2 DEFAULT 'Reset' + cattributes in varchar2 DEFAULT NULL); +``` + +The following is the syntax for HTF: +``` +htf.formReset (cvalue, cattributes) return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cvalue | The value for the VALUE attribute. | +| cattributes | Other attributes to be included as-is in the tag. | + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formselectopen_and_formselectclose.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formselectopen_and_formselectclose.mdx new file mode 100644 index 00000000000..5d2e211364e --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formselectopen_and_formselectclose.mdx @@ -0,0 +1,35 @@ +--- +title: FROMSELECTOPEN and FORMSELECTCLOSE +--- + +This generates the `` tags, which creates a select form element. A select form element is a list-box where the user selects one or more values. + +## Syntax + +The following is the syntax for HTP: +``` +htp.formSelectOpen ( + cname in varchar2 + cprompt in varchar2 DEFAULT NULL + nsize in integer DEFAULT NULL + cattributes in varchar2 DEFAULT NULL); + +htp.formSelectClose; +``` + +The following is the syntax for HTF: +``` +htf.formSelectOpen (cname, cprompt, nsize, cattributes) return varchar2; + +htf.formSelectClose return varchar2; +``` + +## Parameters + +| Parameter | Function | +| --------- | -------- | +| cname | The value for the NAME attribute. | +| cprompt | The string preceding the list-box. | +| nsize | The value for the SIZE attribute. | +| cattributes | Other attributes to be included as-is in the tag.| + diff --git a/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formselectoption.mdx b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formselectoption.mdx new file mode 100644 index 00000000000..bc665fafdd0 --- /dev/null +++ b/product_docs/docs/epas/15/epas_compat_bip_guide/03_built-in_packages/htp_and_htf/formselectoption.mdx @@ -0,0 +1,28 @@ +--- +title: FORMSELECTOPTION +--- + +This generates the `