Skip to main content

Posts

Copy cell value from IG, revisited

H How to copy cell value from Interactive Grid? I wrote about this few years back in this article . Since that I have been warned by several people that it does not work on some occasions. Non editable grid, Redwood theme, read only cell with link... Many issues. Thanks to Matan from Israel and his ChatGPT friend here is a better solution: document.addEventListener('copy', (event) => { const allowed = 'a-GV-cell'; const active_el = document.activeElement; if (active_el.closest(`.${allowed.replace(/\s+/g, '.')}`)) { const selected = window.getSelection().toString() || active_el.innerText; event.clipboardData.setData('text/plain', selected); event.preventDefault(); } }); But we get the whole row (instead of the selected cell) when copy pasting to Outlook (or any rich text editor). So after more testing and tweaking, we came up with this final solution: document.addEventListener('copy', (
Recent posts

New 23ai SQL and DBA certifications

I I am excited to see brand new classic (non cloud) certifications going to be released soon: Oracle Database 23ai SQL Associate: 1Z0-171 [link] , 60 questions, 65% to pass. It looks very similar to current SQL 1z0-071 exam, I wonder what will be 23ai related. Oracle Database 23ai Administration Associate: 1Z0-182 , 60 questions and 65% to pass. We can see a huge difference compared to the previous DBA 1z0-082 exam - the whole SQL section is missing, so all these 60 questions will be DBA related. If you search Oracle MyLearn for "23ai" materials, you will find this: Oracle Database 23ai: SQL Workshop , 19.5 hours Oracle Database 23ai: New Features for Developers , 6 hours Oracle Database 23ai: Administration Workshop , 12.5 hours Oracle Database 23ai: New Features for Administrators , 8.5 hours Happy learning and let me know if you pass one on these.

About the Oracle ACE program

T There is no Oracle User Group in Czech republic. As far as I know, there are just few PR events organized by local Oracle branch few times per year. Last year there was some initiative to organize monthly meetups, but that died quickly. From the rumours I heard several people tried before and failed. I guess there is not enough interest from both sides. Other sad thing is that I don't know a single person in Czech republic who would publish anything for the community. So to be part of the Oracle community, you have to think beyond the borders. Our closest neighbours (Austria, Germany and Poland) have quite large and engaged communities with many events, but I don't know German nor Polish. It might be your case too. Don't be discouraged by that, there are other options. You can become the ODTUG member or a member of any existing Oracle User Group you like. You don't have to live in that country to be a member, but you should know the local language. Joining Spain

APEX Deployment Tool - Automated patching

P Patching is the most significant feature of ADT. You can do a lot of cool things in ADT, but patching is the coolest one. I call this automated patching, because typically I don't have to intervene and I can deploy a patch without any change. The whole idea behind ADT is to focus on your job as a developer and don't worry about mundane tasks like creating patch files manually. ADT has many checks and features to give you confidence on deploying and time to focus on more important or interesting things. ADT does not store anything in database and it does not need any objects in database either. The patch.py script gets all the information from your Git repo (folders, files and config file). To make this work, you must be using Git. Without Git repo you will not be able to generate patch files. This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure Recompile invalid objects Searching APEX and searchin

APEX Blueprint, the 2024 edition

D During my preparation for the amazing APEX Alpe Adria conference in Maribor I have realized that I no longer consider some of my previous recommendations valid, hence there is a time for an update. You can download my presentation at AAA24 review article. Here are the original Blueprint articles published 01/2022: Part 1 about the obvious things + backend and Part 2 focused on APEX . I will repeat some thoughts from these two previous articles and put all things here, so you can refer just to this one new article. I will also add few new thoughts. And it will be longer than usual (around 10 pages actually). Clean code Clean code is a code that can be understood correctly with minimal effort in minimal time. It is not some utopia and you don't have to go to any extremes. In fact you can do just minimal changes in your applications for a huge improvements. How you done things might be obvious to you now, but not the future you, not to mention your colleagues. So if

APEX Deployment Tool - Export database objects

E Exporting database objects is probably the most important thing. Same as for the APEX exports, the more often you do it, the better position you will have. And I store everything in the repo, every single object in database has its own clone in file. I have worked for a company where they stored only changed objects in the repo, imagine that! Every time I am done with a task or at the end of the day I export all changed objects in just few seconds. Update 5/2024: If you want to know the OPY approach, check the Database versioning with data, APEX apps and migrations article. This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure Recompile invalid objects Searching APEX and searching repo for objects Export APEX & live upload Export database objects (this article) Automated patching & deployment The fastest way how to get your changes is to export just the objects which changed in past

APEX Deployment Tool - Export APEX

E Exporting APEX should be done often if you are APEX developer. The more often you do it, the better position you will have. I export APEX every morning to see what other team mates changes (and forgot to commit). I also export it after each change. I modify the page, I export it. With this approach you need to export it fast. This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure Recompile invalid objects Searching APEX and searching repo for objects Export APEX & live upload (this article) Export database objects Automated patching & deployment Export APEX Update 5/2024: ADT no longer use Java based SQLcl to export APEX, so the exports are now 3x faster. If you ask SQLcl for list of changes in APEX for current day or ask ADT to do the split export, you will get the split export faster. The full export is not always suitable. At least exporting just full export is something not v

APEX Deployment Tool - Searching

D Did you ever wondered which database objects are used in your application, in the whole application or just on a specific page? Or to find out where is the specific database object used? Or to find out at which commit was you database object dropped (or created, changed)? This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure Recompile invalid objects Searching APEX and searching repo for objects (this article) Export APEX & live upload Export database objects Automated patching & deployment Searching APEX The solution for searching APEX is based on parsing the Embedded code report export. So when you have this in your repo (and this is part of the next article on export_apex action), the searching is also faster then searching in APEX, it is also more accurate and the result list is much shorter, because it show just list of objects and pages as a table without all the clutter around.

APEX Deployment Tool - Recompile invalid objects

I Invalid objects are often overlooked. Some teams don't care on DEV, others don't care even on PROD. Why would you care, if all you need to do is to wait for a first user who would crunch through the errors and that would recompile the invalid objects, right? It is not that hard to make sure everything is valid... This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure Recompile invalid objects (this article) Searching APEX and searching repo for objects Export APEX & live upload Export database objects Automated patching & deployment If you are looking for a PL/SQL solution, checkout the recompile procedure , which is part of the CORE project . ADT comes with improved script which can be part of your CI/CD pipeline. cd ~/Documents/YOUR_PROJECT_REPO/; adt recompile It recompiles invalid objects, but also the valid ones if you need to change PL/SQL flags. You can also limit

APEX Deployment Tool - Setup

T The most complicated part about ADT is the installation. But don't worry, it is not that complicated and everything after that is super easy. This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure (this article) Recompile invalid objects Searching APEX and searching repo for objects Export APEX & live upload Export database objects Automated patching & deployment Install There is an Install guide in the repo, but in this article I will cover it in more details. You will need Python with some modules, SQLcl, possibly also Instant Client and Git. Here are the steps: clone ADT repo (lets say you clone it here: ~/Documents/ADT/) install any Git client, go for GitHub Desktop if you are new to this install Python 3.11 (and NOT 3.12 or higher) install SQLcl 24.1 install Instant Client 19.16 - required for thick connections (also you might need Java too), you can skip