web-dev-qa-db-fra.com

Comment obtenir le nom de la page Donné ID de page dans Oracle Application Express

Préfixe : J'ai regardé partout sur le net pour cette réponse. Permettez-moi de préfixer la question en décrivant ce que j'essaie de faire: j'essaie de créer une liste unique de raccourcis aux pages de mon application chaque utilisateur . Je souhaite donc utiliser une liste dynamique pour interroger la liste de raccourcis. J'ai déjà des procédures en place et prêtes à obtenir l'ID utilisateur et l'ID de page. J'utilise Apex 5.0

la question : Quelle est la table et colonne (Si cela existe même), je dois interroger pour obtenir le nom de page si donné l'ID de page correspondant. c'est à dire:

select UNKNOWN_COLUMN_FOR_APEX_PAGE_NAME 
from UNKNOWN_TABLE_FOR_APEX_PAGE_INFO

Question alternative : Y a-t-il une variable globale Apex comme: apex_user ou: apex_page_id que je peux utiliser pour obtenir le nom de la page/le titre.

4
asdf

Tout ce que vous voulez (et beaucoup plus) est disponible dans la vue APEX_050000.APEX_APPLICATION_PAGES

SYS@mydb01> describe apex_050000.APEX_APPLICATION_PAGES
Name                        Null?    Type
--------------------------- -------- -------------------------------------
WORKSPACE                   NOT NULL VARCHAR2(255)
WORKSPACE_DISPLAY_NAME               VARCHAR2(4000)
APPLICATION_ID              NOT NULL NUMBER
APPLICATION_NAME            NOT NULL VARCHAR2(255)
PAGE_ID                     NOT NULL NUMBER
PAGE_NAME                   NOT NULL VARCHAR2(255)
PAGE_TITLE                           VARCHAR2(255)
PAGE_MODE                            VARCHAR2(16)
...
PAGE_ALIAS                           VARCHAR2(255)

Et une requête d'échantillon serait

select WORKSPACE, APPLICATION_NAME, 
   PAGE_ID, PAGE_NAME, PAGE_TITLE, PAGE_MODE 
from  APEX_050000.APEX_APPLICATION_PAGES
where workspace  = 'MY_WS' and page_id=210;

Il existe une chaîne de substitution intégrée app_page_id et app_id. Vous pouvez donc le faire sur votre page pour utiliser l'ID de page actuel et l'ID d'application pour obtenir le titre de la page:

select PAGE_TITLE from APEX_050000.APEX_APPLICATION_PAGES
where PAGE_ID = :APP_PAGE_ID and APPLICATION_ID = :APP_ID;

Voir https://docs.oracle.com/cd/e59726_01/doc.50/e39147/concept_sub.htm#beiibajd Pour toutes les chaînes de substitution intégrées.

2
Mark Stewart