Feed aggregator

What is the purpose of the NOFILENAMECHECK parameter?

VitalSoftTech - Mon, 2015-05-18 17:50
I am duplicating my database onto a remote host. In the command, the NOFILENAMECHECK parameter is used. What is its purpose?
Categories: DBA Blogs

With PL/SQL and LONGs (and PRODUCT_USER_PROFILE)

Gary Myers - Sun, 2015-05-17 01:45
One use for the 12.1.0.2 addition of PL/SQL functions in the WITH clause is to get the HIGH_VALUE of a partition in a usable column format.

with
 FUNCTION char2000(i_tab in varchar2, i_part in varchar2) 
 RETURN VARCHAR2 IS
   v_char varchar2(2000);
 BEGIN
   select high_value into v_char
   from user_tab_partitions a
   where a.table_name = i_tab
   and a.partition_name = i_part;
   --
   if v_char like 
     'TO_DATE(''%'', ''SYYYY-MM-DD HH24:MI:SS'', ''NLS_CALENDAR=GREGORIAN'')'
   then
      v_char := regexp_substr(v_char,q'{'[^']+'}');
   end if;
   --
   RETURN v_char;
 END;
select table_name, partition_name, 
       char2000(table_name, partition_name) high_val,
       partition_position, tablespace_name, 
       segment_created, num_rows, last_analyzed, 
       global_stats, user_stats
from user_tab_partitions ut
where segment_created='YES'
order by table_name, high_val;
/

Oracle have spent well over a decade telling us that LONG is deprecated, but still persist in using it in their data dictionary. PL/SQL is the only practical way of getting the values into a more usable data type.

You will want the last version of the SQL Plus client. For SQL, sqlplus treats the semi-colon as a "go off and execute this". PL/SQL has traditionally needed a period on an otherwise empty line to switch from the statement editor to the command prompt.

For example:

Having PL/SQL embedded in the SQL statement confuses the older clients, and we get a bout of premature execution.


In the 12.1.0.2 client, a WITH statement is treated as a PL/SQL statement if it contains PL/SQL (ie needing the period statement terminator). If it doesn't contain PL/SQL then it doesn't (so there's no change required for older scripts). That said, I'd recommend consistently using the period terminator for PL/SQL and SQL.  


The SQLcl client (still beta/early adopter) currently manages the straight select okay, but fails if it is part of a CREATE VIEW. 


Tim Hall has already noted that the WITH PL/SQL doesn't currently work when embedded in a PL/SQL block (such as a procedure), but that is expected in a future release. 

Oh, and while it isn't documented in manual, WITH is its own statement for the purposes of PRODUCT_USER_PROFILE. I can't imagine anyone on the planet is still using PRODUCT_USER_PROFILE for security. If they are, they need to rethink in light of WITH statements and result sets being returned by PL/SQL. 



The human being is the only animal that...

FeuerThoughts - Sat, 2015-05-16 08:41
Last night, I decided to re-read Stumbling on Happiness, a book I'd discovered a few years ago and was (then) delighted with. 

I chose that over one of my (back then) favorite books of fiction, because I'd been thinking yesterday and how odd it is that lots of left-leaning humans are all upset about climate change and really pissed at their elected officials about their non-action on this literally world-changing issue at a time when radical action is necessary - yet they don't take radical action in their own lives.

It's pretty clear that politicians will not change direction (will not override the influence of the source of their funding), until their constituents demonstrate a deep desire for change, backed up by action.

Anyway, there I was wondering once again about humans and why we behave the way we do. And so I sought out some answers in SoH. After all, the renowned Malcolm Gladwell, author of The Tipping Point, says right on the cover: 
"If you have even the slightest curiosity about the human condition, you ought to read it. Trust me."
OK, so fine. If a person says "trust me", usually you want to run in the other direction. But hey....

So I started reading and soon found Daniel Gilbert talking about psychologists are expected sometime in their career to finish The Sentence that starts with "The human being is the only animal that..." and now it was his turn.

Exciting! And then he finished the sentence:
"The human being is the only animal that thinks about the future."
And then you know what I did?

I stopped the reading book - and tossed it into the recycle bin. Yep, I threw the book away. That's how much Gilbert disgusted me, right then and there.

Why? Because of all the things we know about the world and the way it "works", the one thing we can never know is what another animal - even another human - is actually, truly thinking

All we can know, all we can see, all we can measure, and then draw conclusions from, is how an animal manifests their thinking into the world.

Gilbert cites as one "proof" of his Sentence that squirrels will, ahem, squirrel away nuts in advance of winter even in places where they will then find, winter after winter, that nuts or other food remain abundant. 

Go, Gilbert, go! Apply a human frame of judgement onto other animals, sure, why not? Why not assume that means that squirrels don't think about the future, rather than saying: "Maybe they do think about the future and know that they cannot trust what the future will bring, because they are not willing to destroy forests to build houses to hide them from the vagaries of the future."

So I threw out the book, but that got me thinking about The Sentence. I thought I would offer my own variations on that statement and invite others to do the same. Here goes...

The human being is the only animal that:
  • creates garbage, including vast "islands" of plastic in the middle of our oceans
  • causes the extinction of entire species, year in and year out
  • poisons water, the source of all life on this planet
  • learns multiple languages
  • holds it in
And just to pre-empt some typical responses:

The human being is the not only animal that:
  • creates art - lots of birds do, too. Just check out nests of bowerbirds.
  • has a sense of right and wrong - black bears do, too. Just check out Among the Bears. Seriously: READ THIS BOOK.
  • uses tools - birds, chimpanzees and others repurpose stones, branches, etc. as tools
  • is altruistic - again, black bears, and even more so ants. Many species of ants are way more altruistic than humans.
So what can you think of that only a human does? And please don't tell me about your belief about internal states of mind. That's just an opinion. Tell me about what humans do.



Categories: Development

Security Alert CVE-2015-3456 Released

Oracle Security Team - Fri, 2015-05-15 14:52

Hi, this is Eric Maurice.

Oracle just released SecurityAlert CVE-2015-3456 to address the recently publicly disclosed VENOMvulnerability, which affects various virtualization platforms. This vulnerability results from a bufferoverflow in the QEMU's virtual Floppy Disk Controller (FDC).

While the vulnerability is not remotely exploitable withoutauthentication, its successful exploitation could provide the maliciousattacker, who has privileges to access the FDC on a guest operating system,with the ability to completely take over the targeted host system. As a result, a successful exploitation of thevulnerability can allow a malicious attacker with the ability to escape theconfine of the virtual environment for which he/she had privileges for. This vulnerability has received a CVSS BaseScore of 6.2.

Oracle has decided to issue this Security Alert based on anumber of factors, including the potential impact of a successful exploitationof this vulnerability, the amount of detailed information publicly availableabout this flaw, and initial reports of exploit code already “in the wild.” Oracle further recommends that customersapply the relevant fixes as soon as they become available.

Oracle has also published a listof Oracle products that may be affected by this vulnerability. This list will be updated as fixes becomeavailable.

The Oracle Security and Development teams are also workingwith the Oracle Cloud teams to ensure that the Oracle Cloud teams can evaluatethese fixes as they become available and be able to apply the relevant patchesin accordance with applicable change management processes in theseorganizations.

For More Information:

The Security Alert Advisory is located at

http://www.oracle.com/technetwork/topics/security/alert-cve-2015-3456-2542656.html

The list of Oracle products that may be affectedby this vulnerability is published at http://www.oracle.com/technetwork/topics/security/venom-cve-2015-3456-2542653.html

Security Alert CVE-2015-3456 Released

Oracle Security Team - Fri, 2015-05-15 14:52

Hi, this is Eric Maurice.

Oracle just released Security Alert CVE-2015-3456 to address the recently publicly disclosed VENOM vulnerability, which affects various virtualization platforms. This vulnerability results from a buffer overflow in the QEMU's virtual Floppy Disk Controller (FDC).

While the vulnerability is not remotely exploitable without authentication, its successful exploitation could provide the malicious attacker, who has privileges to access the FDC on a guest operating system, with the ability to completely take over the targeted host system. As a result, a successful exploitation of the vulnerability can allow a malicious attacker with the ability to escape the confine of the virtual environment for which he/she had privileges for. This vulnerability has received a CVSS Base Score of 6.2.

Oracle has decided to issue this Security Alert based on a number of factors, including the potential impact of a successful exploitation of this vulnerability, the amount of detailed information publicly available about this flaw, and initial reports of exploit code already “in the wild.” Oracle further recommends that customers apply the relevant fixes as soon as they become available.

Oracle has also published a list of Oracle products that may be affected by this vulnerability. This list will be updated as fixes become available.

The Oracle Security and Development teams are also working with the Oracle Cloud teams to ensure that the Oracle Cloud teams can evaluate these fixes as they become available and be able to apply the relevant patches in accordance with applicable change management processes in these organizations.

For More Information:

The Security Alert Advisory is located at

http://www.oracle.com/technetwork/topics/security/alert-cve-2015-3456-2542656.html

The list of Oracle products that may be affected by this vulnerability is published at http://www.oracle.com/technetwork/topics/security/venom-cve-2015-3456-2542653.html

APEX 5.0: There are issues with the configuration of the Static Files in your environment

Patrick Wolf - Thu, 2015-05-14 09:13
After installing Oracle APEX 5.0, do you get the alert “There are issues with the configuration of the Static Files in your environment. Please consult the “Configuring Static File Support” section in the Application Express Installation Guide.” when you try … Continue reading
Categories: Development

Notes on analytic technology, May 13, 2015

Curt Monash - Wed, 2015-05-13 21:38

1. There are multiple ways in which analytics is inherently modular. For example:

  • Business intelligence tools can reasonably be viewed as application development tools. But the “applications” may be developed one report at a time.
  • The point of a predictive modeling exercise may be to develop a single scoring function that is then integrated into a pre-existing operational application.
  • Conversely, a recommendation-driven website may be developed a few pages — and hence also a few recommendations — at a time.

Also, analytics is inherently iterative.

  • Everything I just called “modular” can reasonably be called “iterative” as well.
  • So can any work process of the nature “OK, we got an insight. Let’s pursue it and get more accuracy.”

If I’m right that analytics is or at least should be modular and iterative, it’s easy to see why people hate multi-year data warehouse creation projects. Perhaps it’s also easy to see why I like the idea of schema-on-need.

2. In 2011, I wrote, in the context of agile predictive analytics, that

… the “business analyst” role should be expanded beyond BI and planning to include lightweight predictive analytics as well.

I gather that a similar point is at the heart of Gartner’s new term citizen data scientist. I am told that the term resonates with at least some enterprises. 

3. Speaking of Gartner, Mark Beyer tweeted

In data management’s future “hybrid” becomes a useless term. Data management is mutable, location agnostic and services oriented.

I replied

And that’s why I launched DBMS2 a decade ago, for “DataBase Management System SERVICES”. :)

A post earlier this year offers a strong clue as to why Mark’s tweet was at least directionally correct: The best structures for writing data are the worst for query, and vice-versa.

4. The foregoing notwithstanding, I continue to believe that there’s a large place in the world for “full-stack” analytics. Of course, some stacks are fuller than others, with SaaS (Software as a Service) offerings probably being the only true complete-stack products.

5. Speaking of full-stack vendors, some of the thoughts in this post were sparked by a recent conversation with Platfora. Platfora, of course, is full-stack except for the Hadoop underneath. They’ve taken to saying “data lake” instead of Hadoop, because they believe:

  • It’s a more benefits-oriented than geek-oriented term.
  • It seems to be more popular than the roughly equivalent terms “data hub” or “data reservoir”.

6. Platfora is coy about metrics, but does boast of high growth, and had >100 employees earlier this year. However, they are refreshingly precise about competition, saying they primarily see four competitors — Tableau, SAS Visual Analytics, Datameer (“sometimes”), and Oracle Data Discovery (who they view as flatteringly imitative of them).

Platfora seems to have a classic BI “land-and-expand” kind of model, with initial installations commonly being a few servers and a few terabytes. Applications cited were the usual suspects — customer analytics, clickstream, and compliance/governance. But they do have some big customer/big database stories as well, including:

  • 100s of terabytes or more (but with a “lens” typically being 5 TB or less).
  • 4-5 customers who pressed them to break a previous cap of 2 billion discrete values.

7. Another full-stack vendor, ScalingData, has been renamed to Rocana, for “root cause analysis”. I’m hearing broader support for their ideas about BI/predictive modeling integration. For example, Platfora has something similar on its roadmap.

Related links

  • I did a kind of analytics overview last month, which had a whole lot of links in it. This post is meant to be additive to that one.

java.sql.SQLException: Invalid number format for port number

Vikram Das - Wed, 2015-05-13 18:11
Jim pinged me with this error today:

on ./adgendbc.sh i get
Creating the DBC file...
java.sql.SQLRecoverableException: No more data to read from socket raised validating GUEST_USER_PWD
java.sql.SQLRecoverableException: No more data to read from socket
Updating Server Security Authentication
java.sql.SQLException: Invalid number format for port number
Database connection to jdbc:oracle:thin:@host_name:port_number:database failed
to this point, this is what i've tried.
clean, autoconfid on db tier, autoconfig on cm same results
bounced db and listener.. same thing.. nothing i've done has made a difference

I noticed that when this error was coming the DB alert log was showing:

Wed May 13 18:50:51 2015
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x8] [PC:0x10A2FFB
C8, joet_create_root_thread_group()+136] [flags: 0x0, count: 1]
Errors in file /r12.1/admin/diag/rdbms/erp/erp/trace/erp_ora_14528.trc  (incident=1002115):
ORA-07445: exception encountered: core dump [joet_create_root_thread_group()+136
] [SIGSEGV] [ADDR:0x8] [PC:0x10A2FFBC8] [Address not mapped to object] []
Incident details in: /r12.1/admin/diag/rdbms/erp/erp/incident/incdir_1002115/erp_ora_14528_i1002115.trc

Metalink search revealed this article:

Java Stored Procedure Fails With ORA-03113 And ORA-07445[JOET_CREATE_ROOT_THREAD_GROUP()+145] (Doc ID 1995261.1)

It seems that the post patch steps for a PSU OJVM patch were not done.  We followed the steps given in above note were note completed. We completed these and adgendbc.sh completed successfully after that.


1.set the following init parameters so that JIT and job process do not start.

If spfile is used:

SQL> alter system set java_jit_enabled = FALSE;
SQL> alter system set "_system_trig_enabled"=FALSE;
SQL> alter system set JOB_QUEUE_PROCESSES=0;

2. Startup instance in restricted mode and run postinstallation step.

SQL> startup restrict

3.Run the postinstallation steps of OJVM PSU(Step 3.3.2 from readme)
Postinstallation
The following steps load modified SQL files into the database. For an Oracle RAC environment, perform these steps on only one node.
  1. Install the SQL portion of the patch by running the following command. For an Oracle RAC environment, reload the packages on one of the nodes.
2. cd $ORACLE_HOME/sqlpatch/19282015
3. sqlplus /nolog
4. SQL> CONNECT / AS SYSDBA
5. SQL> @postinstall.sql
  1. After installing the SQL portion of the patch, some packages could become INVALID. This will get recompiled upon access or you can run utlrp.sql to get them back into a VALID state.
7. cd $ORACLE_HOME/rdbms/admin
8. sqlplus /nolog
9. SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql


4. Reset modified init parameters

SQL> alter system set java_jit_enabled = true;
SQL> alter system set "_system_trig_enabled"=TRUE;
SQL> alter system set JOB_QUEUE_PROCESSES=10;
        -- or original JOB_QUEUE_PROCESSES value

5.Restart instance as normal
6.Now execute the Java stored procedure.


Ran adgendbc.sh and it worked fine.
Categories: APPS Blogs

Monitoring BRM Host Processes using Metric Extension in EM12c

Arun Bavera - Wed, 2015-05-13 11:01
image

#/bin/sh
export CURRENT_USER=brm
#echo 'PROCESS_NAME'  'COUNT'
for p in dm_oracle cm dm_aq dm_ifw_sync wirelessRealtime.reg
do
CNT=`ps -ef | grep ${CURRENT_USER} | grep ${p} | grep -v grep | grep -v cmmp | wc -l`
echo ${p} '|' ${CNT}
done

image
Categories: Development

APEX 5.0: Upgrade to the newest FontAwesome Icon Library

Patrick Wolf - Wed, 2015-05-13 04:39
Oracle APEX 5.0 ships with FontAwesome version 4.2.0 which will automatically be loaded if your application is using the Universal Theme. This makes it super easy to add nice looking icons to your buttons, lists and regions. But how can you integrate the most … Continue reading
Categories: Development

Mobile My Oracle Support: Knowledge Search

Joshua Solomin - Mon, 2015-05-11 09:41
Untitled Document


GPIcon

Search the knowledge base using simple or advanced search. Advanced search allows mobile users to customize and refine searches using these options:

Source - Select All Sources, Knowledge Base, Bug Database, Oracle System Handbook, or Knowledge Base Archive.

Product or Product Line - Filter either by product or product line.

Mobile users can share a document link or bug report link via email by selecting “Share” on a document or bug page.

Mobile users may tag a document or bug as a favorite in either the Mobile application or the My Oracle Support Portal. Users may also access a list of the most recently viewed documents or bugs.Review My Oracle Support How-to Series to use Mobile My Oracle Support (Document 1683083.2) for more information. Select the “Just the Facts” tab and choose “Searching for Content via Mobile MOS”.




Mobile My Oracle Support: Knowledge Search

Joshua Solomin - Mon, 2015-05-11 09:41
Untitled Document


GPIcon

Search the knowledge base using simple or advanced search. Advanced search allows mobile users to customize and refine searches using these options:

Source - Select All Sources, Knowledge Base, Bug Database, Oracle System Handbook, or Knowledge Base Archive.

Product or Product Line - Filter either by product or product line.

Mobile users can share a document link or bug report link via email by selecting “Share” on a document or bug page.

Mobile users may tag a document or bug as a favorite in either the Mobile application or the My Oracle Support Portal. Users may also access a list of the most recently viewed documents or bugs. Review My Oracle Support How-to Series to use Mobile My Oracle Support (Document 1683083.2) for more information. Select the “Just the Facts” tab and choose “Searching for Content via Mobile MOS”.

 




Oracle things that piss me off (pt 2) - No Direction

Gary Myers - Sun, 2015-05-10 01:33
The SQL Developer team has been chugging forward with it's SQL Command Line (sqlcl) tool.

As I developer, I understand where they are coming from. SQL Developer benefited from being able to run scripts built for the SQL*Plus command line tool. Then there's the temptation to add a few more useful titbits to the tool. And if it is built 'properly', then it would be relatively easy to decouple it from the GUI and have it as a stand-alone. 

BUT.....

where's the big picture ?

I'm pretty sure (but happy to be corrected) that "SQL Developer" is part of the 12.1 database installation. It is certainly referenced in the guides. So I'd assume that the next 12.2 release will have "SQL Developer" and "sqlcl" command line tool and SQL Plus. I couldn't guess whether the sqlplus will be offered as a last gasp, "to be deprecated" option or whether the long term plan is to supply two SQL command line tools.

Unix/Linux users are probably used to something similar, as they generally have the options of different shells, such as bash, ksh, csh etc. But to remedy any confusion, scripts are generally written with a shebang so it can automatically work out which of the available shells it should use.

What DBAs are most likely to end up with is a script for which they'll have to guess whether it is aimed at sqlplus or sqlcl (or, if they are lucky, a comment at the start of the code).

Having the clients "sort of" compatible makes it worse. It is harder to tell what it is aimed at, and what might go wrong if the incorrect client is used. Plus opting for compatibility perpetuates some of the dumb crud that has accumulated in sqlplus over the decades.

For example:
This is an SQL statement:
SET ROLE ALL;
This is a directive to the SQLPlus client
SET TIMING ON
You could tell the subtle difference between the SET as SQL statement and SET as sqlplus directive by the semi-colon at the end. Except that both sqlplus and sqlcl will happily accept a semicolon on the end of a 'local' SET command.

If you think it is hard keeping track of what commands are processed by the database, and what are processed by the client, we also have commands that do both.



16:01:49 SQL> select sysdate, to_char(sysdate), cast(sys_context('USERENV','NLS_DATE_FORMAT') as varchar2(20)) dt_fmt,
  2          cast(sys_context('USERENV','NLS_CALENDAR') as varchar2(20)) cal
  3          from dual;

SYSDATE                 TO_CHAR(SYSDATE)   DT_FMT               CAL
----------------------- ------------------ -------------------- --------------------
10/MAY/15               10/MAY/15          DD/MON/RR            GREGORIAN


16:02:35 SQL> alter session set nls_date_format = 'DD/Mon/YYYY';

Session altered.

16:02:40 SQL> select sysdate, to_char(sysdate), cast(sys_context('USERENV','NLS_DATE_FORMAT') as varchar2(20)) dt_fmt,
  2          cast(sys_context('USERENV','NLS_CALENDAR') as varchar2(20)) cal
  3          from dual;

SYSDATE            TO_CHAR(SYSDATE)     DT_FMT               CAL
------------------ -------------------- -------------------- --------------------
10/May/2015        10/May/2015          DD/Mon/YYYY          GREGORIAN

To clarify this, the statement returns one column as a DATE, which will be converted to a string by the client according to its set of rules, and one column as a string converted from a DATE by the database's set of rules.

The ALTER SESSION has been interpreted by both the client AND the server.

This becomes obvious when we do this:

16:02:44 SQL> alter session set nls_calendar='Persian';

Session altered.

16:06:22 SQL> select sysdate, to_char(sysdate),
  2       cast(sys_context('USERENV','NLS_DATE_FORMAT') as varchar2(20)) dt_fmt,
  3       cast(sys_context('USERENV','NLS_CALENDAR') as varchar2(20)) cal
  4       from dual;

SYSDATE                 TO_CHAR(SYSDATE)       DT_FMT               CAL
----------------------- ---------------------- -------------------- ----------
10 May       2015       20 Ordibehesht 1394    DD Month YYYY        Persian

The database knows what to do with the Persian calendar, but the sqlcl client didn't bother. SQLPlus copes with this without a problem, and can also detect when the NLS_DATE_FORMAT is changed in a stored procedure in the database rather than via ALTER SESSION. I assume some NLS values are available/fed back to the client via OCI.

If I was going for a brand-new SQL client, I'd draw a VERY strong line between commands meant for the client and commands intended for the database (maybe a : prefix, reminiscent of vi). I'd also consider that some years down the track, I might be using the same client to extract data from the regular Oracle RDBMS, their mySQL database, a cloud service.... 

To be honest, I'd want one tool that is aimed at deploying DDL to databases (procedures, new columns etc) and maybe data changes (perhaps through creating and executing a procedure). A lot of the rest would be better off supplied as a collection of libraries to be used with a programming language, rather than as a client tool. That way you'd get first class support for error/exception handling, looping, conditions....

PS.
When it comes to naming this tool, bear in mind this is how the XE install refers to the SQL Plus client:



Flipkart and Focus - 2 - Mobile Advertising Numbers Can Be Misleading

Abhinav Agarwal - Sat, 2015-05-09 10:44
The second part of my series of articles on why I believed Flipkart was at losing focus, at the wrong time, when faced with its most serious competition to date. This one focused on why a fascination with mobile advertising numbers could be very misleading.
It was published in DNA on April 14, 2015.

The Numbers Game Can be Very Misleading
According to the Internet Trends report of 2014, mobile internet advertising spend grew 47% year-on-year in 2013 to reach $12.7 billion, or 11% of the total global internet advertising spend. This mobile ad spend number was about 32 per cent of total mobile app revenues of $38 billion. Clearly mobile ad spend has been growing several times faster than non-mobile ad spend.
Facebook, the world’s largest social network, has been stunningly successful in growing its mobile revenues. So much so that “In the final three months of 2014, Facebook served 65% fewer ads than a year earlier, but the average cost of those ads to advertisers was 335% higher.[i]” As much as $2.5 billion in Facebook’s annual revenues came from these mobile ads – shown on smartphones or tablets. So successful has Facebook been in making money from selling these mobile ads that it “launched its in-app mobile ad network” in 2014[ii] to sell ads within other apps,


Meanwhile, Google has not been standing still. It is by far the largest player on the internet when it comes to online ads with estimated annual mobile ad revenues of $8 billion in 2013[iii], but its presence on the mobile platform has seen some hiccups. Its overall slice of the mobile ad pie has been shrinking, thanks to Facebook’s steroidal growth in the segment, but as an overall number Google’s mobile ad revenues continue to grow. It was estimated that Google and Facebook held a combined 50 per cent share of the global mobile ad revenue market in 2014[iv]. It is however a given that not only will it continue to persevere in that segment, but will sooner or later figure out the right approach to get growth back on track – given that less and less users were spending time on mobile browsers than on apps. For example, Google added deep-links[v] to its mobile search results[vi], so that users could click to be taken directly to a specific page (or its equivalent) in an app if they had that app installed[vii]. It also announced that it would start using “mobile-friendliness as a ranking signal” in its mobile search results[viii]. In yet another effort to boost ads on its app store, Google Play, it announced a pilot program to help app developers build targeted ads for search results on Google Play[ix]. It is expected that these will yields results in the coming quarters. Nor is it the case that everything is negative for Google on the mobile front. YouTube, for example, continued to be a star performer for Google. Google CFO stated that “YouTube’s mobile revenue (in 2014) increased more than 100 percent over[x]

Let’s not forget Twitter. “Mobile advertising revenue was 85% of total advertising revenue[xi]”, or $272 million, in in its third quarter of 2014.
In a somewhat incongruous presence, we also have Indian startup InMobi, with estimated annual revenues of $372 million, and which is also estimated to be the “biggest non-public mobile ad business on the planet.[xii]” Yes, that is very, very impressive and creditable. There are several other start-ups in this space; for example, Kenshoo, whose “CEO Izhar-Prato Says $15 Billion In Annual, Online Sales Revenue Flowing Through Platform[xiii]."

So, the decision to enter the mobile ad business should seem like a non-brainer, right? After all, didn’t Google CEO Eric Schmidt say that Amazon was Google’s biggest competitor in search[xiv]? Also, didn’t Amazon have search ambitions, seeking to start first with replacing Google ads that are served on Amazon’s pages[xv]?

Not quite, one hopes.

Before you gush over the fact that 98% of Facebook’s revenue growth in its latest quarter were accounted for by mobile ads[xvi], also note that Facebook has 745 million users on an average day (that is more than 22 billion visits a month) visiting its site via mobile devices[xvii]. By the by, Facebook crossed one trillion page views in 2011[xviii], so the company does not quite have a burning problem of engagement either on its hands.

Twitter’s numbers were achieved on the back of 181 billion (yes, that is 181 followed by nine zeros) timeline views by its 284 million monthly active users, of which 227 million were mobile users[xix].
Flipkart, by contrast, had “8 million daily visits” to its web sites – I assume desktop, mobile, and app combined – as of December 2014[xx].

Amazon, despite not being known as a search player, is still estimated to have sold $1 billion in search ads in 2014[xxi].

Much has been said and written about Google’s search business; so I will add just one more point here – Google AdWords has more than one million advertisers[xxii].

And if you are a start-up hoping to make it big by either acquiring or getting acquired, do take a minute to ponder on the sobering reality-check in the form of Velti’s meltdown[xxiii].

This is not to pour cold water over Flipkart’s acquisition of Bangalore-based AdIquity[xxiv] (which had raised $15 million from VC firms and was at one point known as Guruji[xxv]), or on Sachin Bansal’s statement, “"I believe it (mobile advertising) can be a big business for us[xxvi]". Far from it. Every company should look aggressively for avenues to disrupt existing business models as well as leverage strengths in one area to prise open a market in another area. That is what every leader aspires to do.

But, if you believe, as a start-up locked in a duel with a company like Amazon that has planted its feet in the Indian market and which is comfortable with having earned less profits in its entire existence than Apple in one quarter[xxvii],[xxviii], with no profits on the horizon (I touched on this in the previous post), VCs that would be getting increasingly worried about their exit strategy (and hopefully profitable exit strategy at that), you have the luxury of entering a market such as mobile ads – on a global level – and where the competition consists of companies like Google, Facebook, and Twitter, then do not be surprised if you are accused of having lost focus.

In the next part I will take a look at why Flipkart may still believe that its app-only drive and mobile ad ambitions could provide synergies.

[i] "Facebook's Mobile Revenue Hits $2.5 Billion as Prices Soar | Digital - Advertising Age", http://adage.com/article/digital/facebook-s-mobile-revenue-hits-2-5-billion-prices-soar/296869/
[ii] "With Ad Network, Facebook Targets Rest of Mobile World | Digital - Advertising Age", http://adage.com/article/digital/ad-network-facebook-targets-rest-mobile-world/292959/
[iii] "Google's 2013 Mobile Search Revs Were Roughly $8 Billion", http://searchengineland.com/googles-2013-mobile-search-revenues-nearly-8-billion-globally-201227
[iv] "Google, Facebook combined for 50% of mobile ad revenues in 2014", http://www.networkworld.com/article/2881132/wireless/google-facebook-combined-for-50-of-mobile-ad-revenues-in-2014.html
[v] "Google To Offer Targeted Mobile App Install Ads In Search And YouTube; Expands App Deep Linking To AdWords | TechCrunch", http://techcrunch.com/2014/04/22/google-to-offer-mobile-app-install-ads-in-search-and-youtube-expands-app-deep-linking-to-adwords/
[vi] "Will Deep Linking Shake Google’s Ad and Search Supremacy?", http://www.cheatsheet.com/technology/will-deep-linking-shake-googles-ad-and-search-supremacy.html/?a=viewall
[vii] "Overview - App Indexing for Google Search — Google Developers", https://developers.google.com/app-indexing/
[viii] "Official Google Webmaster Central Blog: Finding more mobile-friendly search results", http://googlewebmastercentral.blogspot.in/2015/02/finding-more-mobile-friendly-search.html
[ix] "A New Way to Promote Your App on Google Play | Android Developers Blog", http://android-developers.blogspot.in/2015/02/a-new-way-to-promote-your-app-on-google.html
[x] "Google Continues To Miss Revenue Estimates In Fourth Quarter Earnings", http://www.forbes.com/sites/aarontilley/2015/01/29/google-continues-to-miss-revenue-estimates-in-fourth-quarter-earnings/
[xi] "Twitter Reports Third Quarter 2014 Results (NYSE:TWTR)", https://investor.twitterinc.com/releasedetail.cfm?releaseid=878170
[xii] "2. Inmobi: Probably The Biggest Non-Public Mobile Ad Business On The Planet- Business Insider India", http://www.businessinsider.in/RANKED-The-Hottest-Pre-IPO-Adtech-Startups-Of-2014/2-INMOBI-PROBABLY-THE-BIGGEST-NON-PUBLIC-MOBILE-AD-BUSINESS-ON-THE-PLANET/slideshow/34262656.cms
[xiii] "Kenshoo CEO Izhar-Prato Says $15 Billion In Annual, Online Sales Revenue Flowing Through Platform – AdExchanger", http://adexchanger.com/online-advertising/kenshoo/
[xiv] "Google's Eric Schmidt: Our biggest search competitor is Amazon — not Microsoft or Yahoo - GeekWire", http://www.geekwire.com/2014/google-amazon/
[xv] "Amazon to challenge Google in online-ad business - MarketWatch", http://www.marketwatch.com/story/amazon-to-challenge-google-in-online-ad-business-2014-08-24
[xvi] "Chart: Mobile Ads Account for 98% of Facebook's Revenue Growth | Statista", http://www.statista.com/chart/2496/facebook-revenue-by-segment/
[xvii] Ibid.
[xviii] "Facebook is first with 1 trillion page views, according to Google | ZDNet", http://www.zdnet.com/article/facebook-is-first-with-1-trillion-page-views-according-to-google/
[xix] "Twitter Reports Third Quarter 2014 Results (NYSE:TWTR)", https://investor.twitterinc.com/releasedetail.cfm?releaseid=878170
[xx] "Flipkart.com", http://www.flipkart.com/s/press and http://www.entrepreneurindia.com/news/Flipkart-join-hands-with-EPCH-VTPC-and-KASSIA-to-help-small-entrepreneurs-5801/
[xxi] "Amazon to challenge Google in online-ad business - MarketWatch", http://www.marketwatch.com/story/amazon-to-challenge-google-in-online-ad-business-2014-08-24
[xxii] Ibid.
[xxiii] "How Velti, One Of The Largest Mobile Ad Companies On The Planet, Lost $130 Million | Business Insider India", http://www.businessinsider.in/How-Velti-One-Of-The-Largest-Mobile-Ad-Companies-On-The-Planet-Lost-130-Million/articleshow/22238675.cms
[xxiv] "Flipkart eyes more buys to boost mobile advertisement business - The Times of India", http://timesofindia.indiatimes.com/business/india-business/Flipkart-eyes-more-buys-to-boost-mobile-advertisement-business/articleshow/46616114.cms
[xxv] "Flipkart Acquires Mobile Ad Platform, Adiquity » NextBigWhat", http://www.nextbigwhat.com/flipkart-acquires-adiquity-297/
[xxvi] "Flipkart eyes more buys to boost mobile advertisement business - The Times of India", http://timesofindia.indiatimes.com/business/india-business/Flipkart-eyes-more-buys-to-boost-mobile-advertisement-business/articleshow/46616114.cms
[xxvii] "Amazon earnings: How Jeff Bezos gets investors to believe in him.", http://www.slate.com/articles/business/moneybox/2014/01/amazon_earnings_how_jeff_bezos_gets_investors_to_believe_in_him.html
[xxviii] "Rolfe Winkler on Twitter: "Apple's operating cash flow in Q4 -- $33.7 billion. Amazon's since 1994 -- $27.0 billion."", https://twitter.com/rolfewinkler/status/560214596532043776


© 2015, Abhinav Agarwal (अभिनव अग्रवाल). All rights reserved.

New OlapUnderground Utility - The Essbase Outline Viewer

Tim Tow - Fri, 2015-05-08 08:54
Have you ever wanted your users to see an Essbase database outline structure, but had trouble giving them access to Essbase Administrative Services ("EAS") for fear that they may have access to change things they shouldn't change?  Maybe you didn't want to give them EAS and have to deal with the version of Java installed on their machine?  We have the solution to your problems.  After a bit of fits and starts, we have finally released the OlapUnderground Essbase Outline Viewer!

The OlapUnderground Essbase Outline Viewer is a read-only user interface built specifically to view the contents of an Essbase outline.  It is built in Microsoft .NET technology and should run on any Windows-based computer without any special downloads.  It also uses the MaxL outline xml format and, as your Hyperion administrators can create and distribute the outline xml file, end users do not need an Essbase login to view the outline.

Here is a screenshot of the Outline Viewer:

Click image to see it full-size

You can download the Essbase Outline Viewer from our website at http://www.appliedolap.com/resources/downloads/essbase-outline-viewer.  Let us know what you think!

Categories: BI & Warehousing

Leveraging Icon Fonts (Font Awesome) in Oracle ADF - 500 New Icons for your app

Shay Shmeltzer - Thu, 2015-05-07 16:51

Icon fonts are a growing trend among web developers, they make it quite simple to add icons to your web site and resize them for better responsive design.

Font Awesome is a popular open source icon font - providing over 500 icons that you can add to your application. I got several questions over the past couple of weeks about using these icons in ADF applications, so here is a short video showing you how to set this up with ADF 12.1.3 and using skins. (Quick note - before 12.1.3 you couldn't include these type of font in the skin css file - and you would have needed to directly refer to the CSS file from each page in your app - one more reason to upgrade your application to 12.1.3).

The basic steps:

  • Create a new skin for your ADF application (if you don't know how to do this, see this blog entry).
  • Download font awesome and copy the font-awesome-4.3.0 directory into your new skin directory
  • Copy the @font-face entry from the font-awesome.min.css file into your new skin.css file
  • Update the path in the various URI entries so it reflects the new relative location of the font files
  • Create class entries in your skin CSS for the icons you want to use - remember to add a font-family: FontAwesome; to make sure they use the new font.
  • Assign the classes to the styleclass property of your ADF Faces components.

Here is a demo showing how it is set up and how it works:

The skin1.css in the video is this:

@charset "UTF-8";

/**ADFFaces_Skin_File / DO NOT REMOVE**/

@namespace af "http://xmlns.oracle.com/adf/faces/rich";

@namespace dvt "http://xmlns.oracle.com/dss/adf/faces";

@font-face {

    font-family: 'FontAwesome';

    src: url('font-awesome-4.3.0/fonts/fontawesome-webfont.eot?v=4.3.0');

    src: url('font-awesome-4.3.0/fonts/fontawesome-webfont.eot?#iefix&v=4.3.0')format('embedded-opentype'), url('font-awesome-4.3.0/fonts/fontawesome-webfont.woff2?v=4.3.0')format('woff2'), url('font-awesome-4.3.0/fonts/fontawesome-webfont.woff?v=4.3.0')format('woff'), url('font-awesome-4.3.0/fonts/fontawesome-webfont.ttf?v=4.3.0')format('truetype'), url('font-awesome-4.3.0/fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular')format('svg');

    font-weight: normal;

    font-style: normal;

}

.heart:before {

    content: "\f004";

    font-family: FontAwesome;

}

.mail:before {

    content: "\f003";

    font-family: FontAwesome;

If you want to see how this could help with responsive design try this in your CSS as an example. Then resize the width of the browser window to see how the icons will change their size dynamically:

.heart:before {

    content: "\f004";

    font-family: FontAwesome;

    font-size: x-large;

}

.mail:before {

    content: "\f003";

    font-family: FontAwesome;

    font-size: x-large;

}

@media screen and (max-width:950px) {

    .heart:before {

        content: "\f004";

        font-family: FontAwesome;

        font-size: small;

    }

    .mail:before {

        content: "\f003";

        font-family: FontAwesome;

        font-size: small;

    }

Categories: Development

Heuristic Temp Table Transformation - 2

Randolf Geist - Thu, 2015-05-07 16:41
Some time ago I've demonstrated the non-cost based decision for applying the temp table transformation when using CTEs (Common Table/Subquery Expressions). In this note I want to highlight another aspect of this behaviour.

Consider the following data creating a table with delibrately wide columns:

create table a
as
select
rownum as id
, rownum as id2
, rpad('x', 4000) as large_vc1
, rpad('x', 4000) as large_vc2
, rpad('x', 4000) as large_vc3
from
dual
connect by
level <= 1000
;

exec dbms_stats.gather_table_stats(null, 'a')
and this query and plans with and without the temp table transformation:

with cte
as
(
select /* inline */
id
, id2
, large_vc1
, large_vc2
, large_vc3
from
a
where
1 = 1

)
select
*
from
(
select id, count(*) from cte group by id
) a,
(
select id2, count(*) from cte group by id2
) b
where
a.id = b.id2
;

-- Plan with TEMP TABLE transformation
--------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1000 | 52000 | 1341 (1)| 00:00:01 |
| 1 | TEMP TABLE TRANSFORMATION | | | | | |
| 2 | LOAD AS SELECT | SYS_TEMP_0FD9D6609_26FA32 | | | | |
| 3 | TABLE ACCESS FULL | A | 1000 | 11M| 452 (0)| 00:00:01 |
|* 4 | HASH JOIN | | 1000 | 52000 | 889 (1)| 00:00:01 |
| 5 | VIEW | | 1000 | 26000 | 444 (1)| 00:00:01 |
| 6 | HASH GROUP BY | | 1000 | 4000 | 444 (1)| 00:00:01 |
| 7 | VIEW | | 1000 | 4000 | 443 (0)| 00:00:01 |
| 8 | TABLE ACCESS FULL | SYS_TEMP_0FD9D6609_26FA32 | 1000 | 11M| 443 (0)| 00:00:01 |
| 9 | VIEW | | 1000 | 26000 | 444 (1)| 00:00:01 |
| 10 | HASH GROUP BY | | 1000 | 4000 | 444 (1)| 00:00:01 |
| 11 | VIEW | | 1000 | 4000 | 443 (0)| 00:00:01 |
| 12 | TABLE ACCESS FULL | SYS_TEMP_0FD9D6609_26FA32 | 1000 | 11M| 443 (0)| 00:00:01 |
--------------------------------------------------------------------------------------------------------

-- Plan with CTE inlined (turn INLINE into hint)
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1000 | 52000 | 907 (1)| 00:00:01 |
|* 1 | HASH JOIN | | 1000 | 52000 | 907 (1)| 00:00:01 |
| 2 | VIEW | | 1000 | 26000 | 453 (1)| 00:00:01 |
| 3 | HASH GROUP BY | | 1000 | 4000 | 453 (1)| 00:00:01 |
| 4 | TABLE ACCESS FULL| A | 1000 | 4000 | 452 (0)| 00:00:01 |
| 5 | VIEW | | 1000 | 26000 | 453 (1)| 00:00:01 |
| 6 | HASH GROUP BY | | 1000 | 4000 | 453 (1)| 00:00:01 |
| 7 | TABLE ACCESS FULL| A | 1000 | 4000 | 452 (0)| 00:00:01 |
-----------------------------------------------------------------------------
Looking at the query and plan output the following becomes obvious:

- The mere existence of a WHERE clause, even if it is just "WHERE 1 = 1" and referencing the CTE more than once triggers the transformation (nothing new, already demonstrated in the mentioned previous note, as well as the fact that the inlined CTE variant is cheaper in cost)

- There is a huge difference between the estimated size of the TEMP TABLE and the size of the row sources when using the CTE inline

The latter is particular noteworthy: Usually Oracle is pretty clever in optimizing the projection and uses only those columns required (doesn't apply to the target expression of MERGE statements, by the way), which is reflected in the plan output for the inline CTEs - the wide columns don't matter here because they aren't referenced, although being mentioned in the CTE. But in case of the temp table transformation obviously all columns / expressions mentioned in the CTE become materialized, although not necessarily being referenced when the CTE gets used.

So it would be nice if Oracle only materialized those columns / expressions actually used.

Now you might raise the question why mention columns and expressions in the CTE that don't get used afterwards: Well, generic approaches sometimes lead to such constructs - imagine the CTE part was static, including all possible attributes, but the actual usage of the CTE can be customized by a client. In such cases where only a small part of the available attributes get actually used a temp table transformation can lead to a huge overhead in size of the generated temp table. Preventing the transformation addresses this issue, but then the inlined CTE will have to be evaluated as many times as referenced - which might not be desirable either.

Spring, Tulips but not Amsterdam

Pete Scott - Thu, 2015-05-07 16:12
Scott Towers is located in village about 5 minutes from the beach. It is also just 35 minutes from the English end of the channel tunnel (even less from Dover). So short breaks to mainland Europe are just a short drive away. Last weekend we set off to see the Tulips at Keukenhof and on the […]

Access Denied - Access to administration console is restricted

Frank van Bortel - Thu, 2015-05-07 06:56
Access Denied - Access to administration console is restricted. Ran into it, today. Again. This time, I'll make a proper blog entry, not like this one... This time, I actually did follow my own advice, but for the fact, I now am working in a multi-homed WebLogic environment - I simply pasted the wrong WLS home... Frankhttp://www.blogger.com/profile/07830428804236732019noreply@blogger.com0

APEX 5.0: Universal Theme Migration Guide available!

Patrick Wolf - Thu, 2015-05-07 03:59
Do you want to use the new Universal Theme for your existing applications? Then you should definitely have a look at the Universal Theme Migration Guide my colleagues Shakeeb Rahman and Tim Chambers have just published.
Categories: Development

Pages

Subscribe to Oracle FAQ aggregator